我开始遇到File.Copy
的问题。这适用于我的数据创建脚本,管理重复数千个没有问题的文件。在我的代码中稍后尝试创建临时文件时发生问题。File.Copy未经授权的访问C#
我在下面添加了代码示例,但无法正常工作。我尝试了许多不同的方法来尝试解决这个无济于事。我正在做的是将C驱动器上的目录中创建的一些用户数据文件复制到该用户数据文件夹中的临时文件夹中。
代码
foreach (string originalFile in OriginalDataFileNames)
{
string tempFile = originalFile;
TempDataFiles.Add(tempFile);
Console.WriteLine("GlobalDataCtrl: Original Data File: " + XWSDataDirectory + "\\" + tempFile);
Console.WriteLine("GlobalDataCtrl: Saved Temp Data File: " + tempPath + "\\" + tempFile);
File.Copy(XWSDataDirectory + "\\" + originalFile, tempPath + "\\" + tempFile);
}
退出错误
The program '[6256] XtremeWrestlingSim.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
任何帮助表示赞赏,谢谢提前!
SOLUTION:
FileStream outputFS = null;
FileStream inputFS = null;
outputFS = new FileStream(tempPath + "\\" + tempFile, FileMode.CreateNew, FileAccess.ReadWrite);
using (inputFS = new FileStream(XWSDataDirectory + "\\" + originalFile, FileMode.Open))
{
inputFS.CopyTo(outputFS);
}
outputFS.Close();
inputFS.Close();
不知道如何很好地格式化这个,但它的工作原理。用上面的代码替换File.Copy
。
你自己写的这些文件,再后来尝试复制它们?有可能你没有关闭文件句柄。在任何时候写入文件时,务必使用'using'语句或调用'.Close()' –
[File.Copy中的C#UnauthorizedAccessException]的可能重复(http://stackoverflow.com/questions/18554108/c-sharp -unauthorizedaccessexception-in-file-copy) – krillgar
我问你为什么要创建一个新文件(File.Create),然后直接在文件顶部复制一个现有的文件(File.Copy)。 –