我下載了一個像這樣的文件。移動下載的文件。另一個進程使用的IO異常文件
using (var client = new WebClient())
{
client.Proxy = new WebProxy();
client.DownloadFile(@tb.Text, "new.png");
}
然後我想要移動它。
File.Move("new.png", path);
我想這之後,我想...
using (var fileStream = new StreamReader("new.png"))
{
File.Move("new.png", path);
}
但兩個版本都扔文件使用由另一個進程的異常。 我該如何避免這種情況?
哪裏是DownloadFile'和'File.Move之間'代碼'?下載完成後,只有通過'File.Move'得到異常的唯一方法是因爲該文件仍然可能被其他流打開了?有忘記發佈的代碼嗎?第二次嘗試*完全是*那 - 你希望如何移動一個你已經打開閱讀的文件?請發表*精確*代碼和*完整*異常由'Exception.ToString()' –
返回我沒有做任何事情與文件。我只想下載它和移動/重命名。 – Jonas
@Panagiotis在問什麼,是在你的代碼中你調用'File.Move()'的地方。顯示[mcve]。無論如何,你可以在網上搜索「另一個進程使用的C#文件」,並找到很多提示來幫助你解決這個問題。有些工具可以顯示哪個進程在文件上存在鎖定。例如,它可能是病毒掃描程序。 – CodeCaster