绕过Windows复制设计

发布于 2024-10-09 02:32:08 字数 889 浏览 0 评论 0原文

我一直在试图找出一种方法来简化将文件从一个驱动器(在我的情况下是网络驱动器或外部驱动器)复制到主系统驱动器的过程。除了创建一个每次都必须激活的程序然后选择其中的所有信息之外,我没有真正好的设计来绕过它。

我一直想知道是否有一种方法可以用程序来拦截直接的 Windows 副本,以按照我的方式进行。基本设计是,在获取副本(实际上是为了提高效率,一组不同的副本)时,程序会将所有单独的副本组织成单个副本流。

我一直想这样做,因为最近我一直需要备份大量数据并移动它们,因为我的所有驱动器在过去几个月似乎都出现了故障。

编辑

目前,我们假设我正在从完全碎片整理的外部驱动器进行复制(因为我就是这样)。我们还假设我正在复制到一个经过 99% 碎片整理的驱动器(因为我就是这样)。如果我尝试一次移动每个文件,那么 Windows 复制方法效果很好,因为它只需要将连续文件从一个驱动器流式传输到另一个驱动器(可能保持副本连续)。这基本上是最好的情况,我需要从那里搬到这里的所有东西。因此,复制方法以某种算法逻辑顺序(通常按文件名)获取文件,然后读取数据并将其写入新位置。

现在,对于实际情况,我将一堆文件从不同位置复制到第二个驱动器上的不同文件位置(我们仍然假设完全进行了碎片整理,因为这是我的外部设备的情况)。我不想等待每个任务完成后再开始下一个任务,因此我浏览文件夹,挑选并选择要放置的内容,很快我的屏幕就被“复制”窗口覆盖,显示所有尝试运行的副本的状态同时。这会导致整个副本的速度稍微减慢,因为每个副本的进度都独立于其他副本。这意味着,所有这些文件都大致平等地共享带宽,而不是单个连续文件占据可用的总带宽(这也增加了磁盘的读写延迟,因为现在系统必须在返回之前从每个文件中抓取一些内容)到第一个)。仍然假设最好的情况,这比所有文件都位于一个位置并移动到一个位置要慢。

我想要做的是拦截所有单独的下载,并将它们组织成一个相继发生的单个下载列表。

I have been trying to figure out a way to streamline copying files from one drive (network or external in my case) to my main system drives. Short of creating a program that I will have to activate each time then choosing all the info in it, I have no really good design to bypass it.

I have been wondering if there was a way to intercept a straight-forward windows copy with a program to do it my way. The basic design would be that upon grabbing the copy (actually for this to be efficient, a group of different copies), the program would organize all the separate copies into a single stream of copies.

I've been wanting to do this as recently I have been needing to make backups of a lot of data and move it a lot as all my drives seem to be failing the past few months.

EDIT

For the moment, let's assume I am copying from a fully defragmented external drive (because I was). Let's also assume I am copying to a 99% defragmented drive (because I was). If I attempt to move every file at once, then the Windows copy method works great as it only needs to stream a contiguous file from one drive to the other (likely keeping the copy contiguous). This is basically best case, I need everything from there to move to here. So the copy method gets to grab the files in some algorithmicly logical order (typically by filename) and read then write the data to the new location.

Now for the reality of the situation, I instead copy a bunch of files from different locations (let's still assume fully defragmented as this is the case of my external), to different file locations on the second drive. I don't wish to wait for each one to finish before starting the next one, so I go through the folders picking and choosing what goes where and soon my screen is covered in COPY windows displaying the status of all the copies attempting to run at the same time. This presents a slight slowing down of the copy as a whole as each copy progresses independently of the others. That means that instead of a single contiguous file taking the total bandwidth available, all these files share the bandwidth approximately equally (this also adds in read and write delays to the disks as now the system has to grab a little from each file before circling back to the first). Still assuming best case scenario, this slower than if all the files were in one location and moved to one location.

What I want to do is intercept all the separate downloads and organize them into a list of single downloads that would happen one after another.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不及他 2024-10-16 02:32:08

可以很好地拦截的唯一方法是 FileSystemWatcher。

The only way you can intercept nicely is the FileSystemWatcher.

简单 2024-10-16 02:32:08

这可能就是您正在寻找的

检测 Windows 资源管理器复制操作

您需要创建一个根据这篇文章的外壳扩展。

This is probably what you are looking for

detect Windows Explorer copy operation

You need to create a Shell Extension according to this post.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文