0

我正在尝试创建一个文件复制实用程序,它应该可以替代标准的 Windows 文件复制过程。这样做的主要原因是添加复制/移动队列支持,并希望通过仅在文件传输不涉及相同目标物理介质时启用多个文件传输来进行某种优化(您知道当有使用相同的目标媒体进行多次传输?)

我想澄清一下,我几乎没有现实世界的编程经验。我打算将 C#/.net 用于该项目。

本质上,我打算创建与 teracopy 功能相似的东西(如果性能提升不同)。

以下是我需要专家建议的几件事:

文件复制/移动速度如何取决于存储介质(硬盘、闪存驱动器等)?

从一个硬盘到另一个硬盘的读/写速度。(例如,将文件从硬盘 A 复制到 B,从 A 复制到 A)。

如果同时执行,什么样的同时复制/移动操作不会相互显着影响(我不考虑处理器或设备控制器上的负载......或者我应该吗?)?

我承认我可能对这些问题不是很清楚,所以如果您需要更多详细信息才能提供答案,请告诉我。

谢谢你。

4

1 回答 1

0

我认为您可以通过外部调用使用 Win Api 的一部分在C#中完成这样的事情。或者也许已经有一个我不知道的接口(因为我对 C# 比较陌生,只使用了 2 个月)。然而,就我个人而言,如果我想要性能,我会使用 Windows Api在C/C++中做这样的事情,如果我想要一些好的特性和跨平台兼容性,我会使用Python 。尝试找到一些提供跨平台兼容性的库,以及在标准 win api 函数之上的一层。

此链接可能会有所帮助:http: //msdn.microsoft.com/en-us/library/cc148994.aspx

此外,如果您不太担心跨平台兼容性,那么有一个快捷方式,如果您使用非常简单的窗口,您可以尝试使用特定于操作系统的命令,例如批处理,例如,如果您想将名为 foo 的文件从 C:\ 复制到D:\ 只需执行"Copy C:\Foo.txt D:\Foo.txt" 即可完成,您不必担心 USB 驱动器或硬盘,您需要知道的只是要复制到的目录. 您可以使用 C/C++ 中的“system()”函数访问这些命令,我​​不知道 C Sharp 等价物。

于 2011-07-02T16:36:19.260 回答