C#删除只读文件或文件夹(解决File.Delete无法删除文件)
内容摘要
C#删除只读文件的方法:
if (File.GetAttributes(FFName).ToString().IndexOf("ReadOnly") != -1)
File.SetAttributes(FFName, FileAttributes.Normal);
File.Delete(FF
if (File.GetAttributes(FFName).ToString().IndexOf("ReadOnly") != -1)
File.SetAttributes(FFName, FileAttributes.Normal);
File.Delete(FF
文章正文
C#删除只读文件的方法:
1 2 3 | if (File.GetAttributes(FFName).ToString().IndexOf( "ReadOnly" ) != -1) File.SetAttributes(FFName, FileAttributes.Normal); File. Delete (FFName); //不能删除只读文件 |
C#删除只读文件夹的方法:
只读文件夹删除需要先删除文件夹内的文件,然后在使用删除文件夹才能成功,否则将会报没有权限访问。
下面是遍历删除文件夹代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /// <summary> /// 用来遍历删除目录下的文件以及该文件夹 /// </summary> public void DeleteFileByDirectory(DirectoryInfo info) { foreach (DirectoryInfo newInfo in info.GetDirectories()) { DeleteFileByDirectory(newInfo); } foreach (FileInfo newInfo in info.GetFiles()) { newInfo.Attributes = newInfo.Attributes &~(FileAttributes.Archive | FileAttributes.ReadOnly | FileAttributes.Hidden); newInfo. Delete (); } info.Attributes = info.Attributes & ~(FileAttributes.Archive | FileAttributes.ReadOnly | FileAttributes.Hidden); info. Delete (); } |
另外说明:
在操作文件夹时候,在没有删除文件夹里面文件时候貌似对文件夹设置FileAttributes是没有效果,只有文件全部删除后才能设置文件夹属性。
代码注释