(File.Copy)mscorlib.dll中未处理的'System.IO.IOException'

时间:2019-01-27 15:13:14

标签: c# overwrite file-copying

复制文件时遇到问题,如果文件存在于目标目录中,请覆盖它,否则什么也不做。但我收到此错误消息:

An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
The process cannot access the file [PATH]/TaskRepository.cs 
because it is being used by another process.  

我什至几个小时都没有找到解决方案。寻找关于stackoverflow的其他主题,但找不到。我的代码在这里

public void EditFiles(List<string> OriginalFiles, List<string> TargetFiles)
{
    foreach (var original in OriginalFiles)
    {
        int i = 0;
        int index = original.LastIndexOf(@"\");
        if (original.Substring(index).Contains("TaskRepository.cs"))
        {
            while (i < TargetFiles.Count)
            {
                if (TargetFiles[i].Contains("TaskRepository.cs") == true)
                {
                    File.Copy(original, TargetFiles[i], true);
                }
                i++;
            }
        }                
    }
}

3 个答案:

答案 0 :(得分:0)

我会尝试将要使用的文件复制到单独的文件夹中。 Visual Studio很可能是罪魁祸首,但是它可以是锁定文件的任何东西。

Visual Studio locking files while debugging

答案 1 :(得分:0)

您是否在同一目录中使用文件复制,请检查此内容...或还有另一种称为copyto的方法,您也可以使用

FileInfo fi = new FileInfo(@"c:\onefile.txt");
fi.CopyTo(@"d:\anotherfile.txt", true); // existing file will be overwritten

答案 2 :(得分:0)

似乎您的文件未复制到目录中,我猜您的目标路径太长而无法被发现