[英]File.Copy Unauthorized access C#
我開始遇到File.Copy
問題。 這適用於我的數據創建腳本,可以毫無問題地復制數千個文件。 稍后在我的代碼中嘗試創建臨時文件時會出現我的問題。
我在下面添加了無法正常工作的代碼示例。 我嘗試了許多不同的方法來嘗試解決此問題,但無濟於事。 我正在做的是將在 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'.
任何幫助表示贊賞,提前致謝!
解決方案:
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
。
您在調用File.Copy
之前正在使用File.Create
,我認為這就是問題所在,它正在留下一個開放的流。
也許刪除File.Create
調用將解決問題。 如果不是,您可以獲得返回值(這是一個流)並在嘗試復制之前關閉它。
該文件以讀/寫訪問權限打開,必須先關閉,然后才能被其他應用程序打開。
請參閱備注https://msdn.microsoft.com/en-us/library/ms143361(v=vs.110).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.