2012-01-19 29 views
0

我有一個Asp.net頁面,它允許文件上傳,然後將新上傳的文件複製到另一個文件夾。到現在爲止還挺好。問題在於複製的文件在其他文件夾中用於其他需求(例如使用FileStream打開復制的文件)。但是asp.net會對複製的文件進行鎖定。只要Visual Studio的內置web服務器正在運行,我甚至無法使用Windows資源管理器打開復制的文件。我得到這樣一個錯誤:asp.net File.Copy鎖

該進程無法訪問文件「C:\的Inetpub \ wwwroot文件..... PDF」,因爲它正被另一個進程使用

下面是部分代碼:

System.IO.File.Copy(targetFolder_live + "\\" + finalfilename, targetFolder_encr + "\\" + finalfilename); 

createpreviewdoc(finalfilename); 
////inside the createpreviewdoc function 
FileStream stream = new FileStream(targetFolder_encr + "/" + file, FileMode.OpenOrCreate);//Fails with the error! 

那麼可以做什麼來刪除在同一頁面加載鎖?謝謝!

回答

0

我會嘗試以不同的方式複製。

FileInfo fileInfo = new FileInfo("PathToOriginal"); 
fileInfo.CopyTo("MyNewLocation"); 

File.OpenText("MyNewLocation"); // works for me 
+0

哎呀! FileStream stream = new FileStream(targetFolder_encr +「/」+ file +「_encr.pdf」,FileMode.OpenOrCreate); – IrfanClemson

+0

FileInfo fileInfo = new FileInfo(targetFolder_live +「\\」+ finalfilename); fileInfo.CopyTo(targetFolder_encr +「\\」+ finalfilename); // ***仍然出現同樣的錯誤*** – IrfanClemson

+0

有沒有一些流在您的預覽方法中打開沒有關閉的文件? – OnResolve