C# 加快USB驱动器上的文件复制速度
我有一个具有以下文件夹结构的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
<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,但速度没有提高
你为什么要复制文件?如果将同一设备上的文件移动到另一个文件夹,则只需更改分配表(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)不需要更改,只需要更改目录。