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); }
原因:文件权限问题,文件从别的地方复制到备份文件夹时,权限也复制过来了,再删除备份文件夹,删除失败
解决方法:
复制文件时,设置属性,删除文件时,再次设置属性。
DeleteFile.SetAttributes(file, FileAttributes.Normal);File.Delete(file);
CopyFile.Copy(file, dest, true);File.SetAttributes(dest, FileAttributes.Normal);
资料来源:
https://stackoverflow.com/questions/26577038/deleting-file-but-is-access-denied