c# 删除所有空文件夹及其子文件

//多线程操作需要先加锁

lock(this){

//获取所有子文件夹,数组是乱序排序

string[] dirs = Directory.GetDirectories("文件路径", "", SearchOption.AllDirectories);

//为了先删除子目录再删除父目录,数组先排序再倒序,让子目录排在父目录前面
            Array.Sort(dirs);
            Array.Reverse(dirs);
            foreach (var dir in dirs)
            {
                var info = new DirectoryInfo(dir);

                //检查是否包含子文件夹及文件
                if (info.GetFileSystemInfos().Length == 0)
                {

                        //由于子文件夹或文件随时会增加,不强制删除子文件及子文件夹
                        info.Delete();
                }
            }
 }

你可能感兴趣的:(C#,c#,p2p,linq)