当前位置: 首页 > 知识库问答 >
问题:

如何复制正在使用的文件[重复]

杨和蔼
2023-03-14

进程无法访问文件'd:\app_data\',因为另一个进程正在使用它。

这是我一直在用的代码

string dir = Directory.GetDirectories(@"D:\","App_data").FirstOrDefault();
string targetPath = @"D:\Back_up_PayRoll\";

if (System.IO.Directory.Exists(dir))
{
    string[] files = System.IO.Directory.GetFiles(dir);

    if (!Directory.Exists(targetPath))
        Directory.CreateDirectory(targetPath);

    foreach (string s in files)
    {
        var fileName = System.IO.Path.GetFileName(s);

        var destFile = System.IO.Path.Combine(targetPath, fileName);
        System.IO.File.Copy(s, destFile, true);
        MessageBox.Show("BACK-UP Done..");
    }
}

共有1个答案

戎亦
2023-03-14

如果系统上可用,您可以使用卷影复制服务使用快照

在C#中,有一个方便的AlphaVSS库包装COM接口,但您可以直接实现它。

如果VSS不可用,那么运气不好,无法绕过文件锁

 类似资料:
  • 我正在使用骆驼复制文件,但它没有发生,我正在使用Mac。抛出的消息为

  • 问题内容: 我在一个商业android应用程序上工作。我还使用了一些使用不同许可类型许可的库,其中一些声明如下: 如果库中有带有归因说明的“ NOTICE”文件,则在分发时必须包括该NOTICE (例如,其中之一已获得 Apache License 2.0 的 许可 )。 有多个库。使用 gradle 或 Android Studio 进行构建时,出现以下构建错误: 到目前为止,我在Interne

  • 我在一个商业android应用程序工作。我还使用了一些在不同许可类型下许可的库,其中一些声明如下: (例如,其中一个是在Apache License2.0下获得许可的)。 不止一个图书馆。当我使用gradle或Android Studio进行构建时,我会得到以下构建错误: 到目前为止,我在internet和stackoverflow上找到的答案建议,通过在文件中添加以下内容,从打包中删除licen

  • 问题内容: 使用复制大型文件时,您没有任何指示操作进展的信息。 我已经把一些作品- 它使用一个简单的进度条类(简单的返回一个简单的ASCII进度栏,作为一个字符串),和一个环,并做实际的复制。它显示进度条,使用它有点黑,但它可以工作。 您可以在github上查看代码(在上下文中) 是否有任何内置模块可以更好地做到这一点?可以对此代码进行任何改进吗? 问题答案: 两件事情: 我想使默认的块大小, 很

  • 我在我的android项目中添加了两个库,它们被称为: 我在中将它们定义为: null

  • 问题内容: 如何将a转换为a ? 问题答案: 这取决于最适合您的方式。明智地提高生产力,不要重蹈覆辙,而是使用Apache Commons。在哪。