我正在编写一个从USB设备复制到本地HD的工具 - 我想知道C#中是否有一个函数可以将文件从一个路径复制到另一个路径?
答案 0 :(得分:5)
是的!狡猾地命名为:
答案 1 :(得分:4)
File.Copy
可能对你想做的事情没问题,但它没有提供太大的灵活性(没有取消,没有进度跟踪......)。
如果您需要这些功能,可以查看支持它们的CopyFileEx
API。我为CopyFileEx
(以及MoveFileWithProgress
)编写了一个.NET包装器,你可以找到它here(文档注释用法语,对不起...希望不会是一个问题)。以下是您可以使用它的方法:
void CopyFile(string source, string destination)
{
var copy = new FileCopyOperation(source, destination);
copy.ReplaceExisting = true;
copy.ProgressChanged += copy_ProgressChanged;
copy.Execute();
}
void copy_ProgressChanged(object sender, FileOperationProgressEventArgs e)
{
copyProgressBar.Value = e.PercentDone;
if (abortRequested)
e.Action = FileOperationProgressAction.Cancel;
}