C# 加快USB驱动器上的文件复制速度

C# 加快USB驱动器上的文件复制速度,c#,windows,file-io,C#,Windows,File Io,我有一个具有以下文件夹结构的USB驱动器 <root of USB> -- folder1 -- folder1a -- file1ai -- file1aii -- file1aiii -- folder1b -- ... -- ... -- folder2 -- folder2a -- folder2b -- ... -- folder3 -- f

我有一个具有以下文件夹结构的USB驱动器

<root of USB>
--  folder1
    -- folder1a
         -- file1ai
         -- file1aii
         -- file1aiii
    -- folder1b
         -- ...
    -- ...
--  folder2
    -- folder2a
    -- folder2b
    -- ...
--  folder3
    -- folder3a
    -- folder3b
    -- ...

--折叠1
--折叠1a
--文件1AI
--文件1AII
--文件1AIII
--折叠1b
-- ...
-- ...
--折叠2
--折页2a
--折叠2b
-- ...
--折页3
--折页3a
--折叠3b
-- ...
以编程方式,我需要重新排列USB驱动器上的文件夹,如下所示

<root of USB>
-- new folder
    -- folder1a
    -- folder1b
    -- ...
    -- folder2
       -- folder2a
       -- folder2b
       -- ...
    -- folder3
       -- folder3a
       -- folder3b
       -- ...

--新文件夹
--折叠1a
--折叠1b
-- ...
--折叠2
--折页2a
--折叠2b
-- ...
--折页3
--折页3a
--折叠3b
-- ...
这里的代码示例非常有效,但当涉及到大量文件夹时(例如,当folder1有1000个子文件夹(folder1a、folder1b等)时,其速度非常慢,folder1的总大小约为4MB(磁盘上约为12MB)-这些大小是恒定的。所有文件夹的复制操作总共需要25分钟以上。有没有办法加快这项行动?我希望有一些超级聪明的方法来重命名文件夹/操纵分配表/实现这一点

注:

  • 输入和最终重新排列的输出需要在USB驱动器上- 这是一个sneakernet设置
  • USB驱动器为FAT32或4GB大小的NTFS。我们尝试了USB3.0,但速度没有提高
所有文件夹的复制操作总共需要25分钟以上

你为什么要复制文件?如果将同一设备上的文件移动到另一个文件夹,则只需更改分配表(FAT/NTFS)。我建议使用或

所有文件夹的复制操作总共需要25分钟以上


你为什么要复制文件?如果将同一设备上的文件移动到另一个文件夹,则只需更改分配表(FAT/NTFS)。我建议您使用或。

当您通过Windows资源管理器或类似工具手动执行此操作时,速度应该如何更快?我怀疑这是否有效,它仅仅取决于USB的速度。要使用USB3.0,你必须有一个可插拔的USB设备(比如一个棒)和一个读卡器(你的电脑也需要USB3.0)。将3.0设备插入到2.0接口上不会有任何改进。将整个设备复制到硬盘中,重新排序并复制回?@Thomas不幸的是,复制回硬盘的过程中,速度增益丢失了。USB盘上的数据总大小是多少?它是什么型号的?当您通过Windows资源管理器或类似工具手动执行此操作时,它应该如何更快?我怀疑这是否有效,它仅仅取决于USB的速度。要使用USB3.0,你必须有一个可插拔的USB设备(比如一个棒)和一个读卡器(你的电脑也需要USB3.0)。将3.0设备插入到2.0接口上不会有任何改进。将整个设备复制到硬盘中,重新排序并复制回?@Thomas不幸的是,复制回硬盘的过程中,速度增益丢失了。USB盘上的数据总大小是多少?它是什么型号的?很好地观察到移动效率较高,但实际上分配表(FAT)或位图(NTFS)不需要更改,只需要更改目录。很好地观察到移动效率较高,但实际上分配表(FAT)或位图(NTFS)不需要更改,只需要更改目录。