双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

C# 删除文件和文件夹 遍历文件和文件夹

ygm8611 ygm8611 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在实践中发现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);
}
}
...全文
评论 2
收藏 已收藏
分享
返回顶部
ygm8611
C# 111,129 成员 642,540 内容