簡體   English   中英

嘗試刪除已保存的Excel文件但出現IOException:該進程無法訪問該文件,因為它正在被另一個進程使用

[英]Trying to delete a saved Excel file but getting the IOException: The process cannot access the file because it is being used by another process

我正在嘗試讀取Excel文件,在表上查看它,然后將數據保存到數據庫中。 但是,每當我嘗試再次導入同一文件時,我都會不斷得到IOException。 我幾乎可以肯定,訪問文件的過程是我自己的程序。 我想念什么,我該怎么辦?

我試圖關閉該文件,因為它可能仍處於打開狀態,但是對於如何完成該操作並不確定。

這是我得到異常的地方:

 if(excelfile.FileName.EndsWith("xls") || excelfile.FileName.EndsWith("xlsx"))
            {

                string path = Server.MapPath("~/Content/" + excelfile.FileName);

                if (System.IO.File.Exists(path)) System.IO.File.Delete(path);

                excelfile.SaveAs(path);

代碼是否可能工作太快並且無法刪除項目,然后才能再次保存?

要測試這一點,請像下面這樣在代碼中入睡:

System.IO.File.Delete(path); Threading.Thread.Sleep(500) excelfile.SaveAs(path);

如果這行得通,那么建議您從睡眠功能中退出,因為它會使應用程序在睡眠時凍結。

編輯:我意識到最后一部分可能還不清楚:從Theading.Thread.Sleep(Time in ms)Theading.Thread.Sleep(Time in ms)切換到類似隱藏的計時器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM