在C#中寻找文件复制功能

时间:2010-12-12 19:44:15

标签: c#

我正在编写一个从USB设备复制到本地HD的工具 - 我想知道C#中是否有一个函数可以将文件从一个路径复制到另一个路径?

2 个答案:

答案 0 :(得分:5)

是的!狡猾地命名为:

File.Copy

答案 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;
}