C# 删除文件和文件夹 遍历文件和文件夹
在实践中发现1个文件夹下面可能有只读的文件和只读的文件夹。那么就需要通过层层遍历的方法取消每个文件夹里文件的只读属性然后删除。然后打开子文件夹取得里面的文件和文件夹,再取消每个文件夹里文件的只读属性然后删除。
//刪除指定文件和文件夾
public static bool DelFileAndDir(string sDet,ref string sErrMsg)
{
string sDelDir = "";
DirectoryInfo DirInfo;
ArrayList list;
try
{ //假设要删除的是和应用程序放在一起的1个文件夹及其子文件夹和文件
sDelDir = “C:\应用程序\新建文件夹”;
Debug.WriteLine(sDelDir); //下載的文件的詳細路徑和文件名
Debug.WriteLine(sDelDir);
DirInfo = new DirectoryInfo(sDelDir);
GetFilesAndDir(DirInfo); //如果不用这句遇到1个文件夹里有只读属性的文件删除当前文件夹会报错。
//遍歷本地下載文件目錄是文件的取消只讀屬性后刪除,否則繼續遍歷下面1個文件夾
DirInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
Debug.WriteLine(sDelDir); //需要刪除的文件夾
if (DirInfo.Exists)
{
DirInfo.Delete(true);
}
return true;
}
catch(Exception ex)
{
sErrMsg = ex.Message;
return false;
}
}
//核实某个文件夹里面的所有文件是只读的就删除,是子文件夹的通过递归调用的方式继续找出子文件夹里的文件是只读的就删除
//还有子文件夹的继续调用直到最里面的1个文件夹。
private static void GetFilesAndDir(DirectoryInfo dir)
{
foreach (FileInfo fileInfo in dir.GetFiles())
{
if (fileInfo.IsReadOnly)
{
fileInfo.Attributes = FileAttributes.Normal;
}
fileInfo.Delete();
}
foreach (DirectoryInfo directory in dir.GetDirectories())
{
GetFilesAndDir(directory);
}
}
//刪除指定文件和文件夾
public static bool DelFileAndDir(string sDet,ref string sErrMsg)
{
string sDelDir = "";
DirectoryInfo DirInfo;
ArrayList list;
try
{ //假设要删除的是和应用程序放在一起的1个文件夹及其子文件夹和文件
sDelDir = “C:\应用程序\新建文件夹”;
Debug.WriteLine(sDelDir); //下載的文件的詳細路徑和文件名
Debug.WriteLine(sDelDir);
DirInfo = new DirectoryInfo(sDelDir);
GetFilesAndDir(DirInfo); //如果不用这句遇到1个文件夹里有只读属性的文件删除当前文件夹会报错。
//遍歷本地下載文件目錄是文件的取消只讀屬性后刪除,否則繼續遍歷下面1個文件夾
DirInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
Debug.WriteLine(sDelDir); //需要刪除的文件夾
if (DirInfo.Exists)
{
DirInfo.Delete(true);
}
return true;
}
catch(Exception ex)
{
sErrMsg = ex.Message;
return false;
}
}
//核实某个文件夹里面的所有文件是只读的就删除,是子文件夹的通过递归调用的方式继续找出子文件夹里的文件是只读的就删除
//还有子文件夹的继续调用直到最里面的1个文件夹。
private static void GetFilesAndDir(DirectoryInfo dir)
{
foreach (FileInfo fileInfo in dir.GetFiles())
{
if (fileInfo.IsReadOnly)
{
fileInfo.Attributes = FileAttributes.Normal;
}
fileInfo.Delete();
}
foreach (DirectoryInfo directory in dir.GetDirectories())
{
GetFilesAndDir(directory);
}
}
...全文
相关推荐
C#的文件和文件夹操作-创建、移动、删除、遍历、读写
C#的文件和文件夹操作-创建、移动、删除、遍历、读写的代码示例,有代码注释。
C#删除只读文件或文件夹(解决File.Delete无法删除文件)
主要介绍了C#删除只读文件或文件夹(解决File.Delete无法删除文件),需要的朋友可以参考下
C#实现文件夹的复制和删除
主要为大家详细介绍了C#实现文件夹的复制和删除功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
c# 删除所有的空文件夹的小例子
c# 删除所有的空文件夹的小例子,需要的朋友可以参考一下
C#清空文件及文件夹
C#版清空文件和文件夹,文件夹下有文件时遍历该文件夹,清空其子文件



