C# 刪除文件錯誤 access denied


使用以下代碼正常刪除整個文件夾內容時,報錯如下:

      if (backupPathDir.Exists) {
                System.IO.DirectoryInfo di = new DirectoryInfo(backupPathDir.ToString());

                foreach (FileInfo file in di.GetFiles()) {
                    file.Attributes = FileAttributes.Normal;
                    file.Delete();
                }
                foreach (DirectoryInfo dir in di.GetDirectories()) {
                    dir.Delete(true);
                }
                backupPathDir.Delete(true);
            }

 

報錯如下:

 

 

原因:文件權限問題,文件從別的地方復制到備份文件夾時,權限也復制過來了,再刪除備份文件夾,刪除失敗

解決方法:

復制文件時,設置屬性,刪除文件時,再次設置屬性。

Delete

File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);

Copy File.Copy(file, dest,
true); File.SetAttributes(dest, FileAttributes.Normal);

 

 

資料來源:

https://stackoverflow.com/questions/26577038/deleting-file-but-is-access-denied


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM