110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// 获取D盘下的所有文件夹作为变量。不包括子文件夹和文件。
string[] dirs = Directory.GetDirectories(@"D:\", "*", SearchOption.TopDirectoryOnly);
// 在删除操作之前先列出所有文件夹。
Console.WriteLine("The number of directories is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
Console.WriteLine("\n");
// 删除D盘下的空文件夹。
foreach (string dir in dirs)
{
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dir);
// 判断文件夹是否为空文件夹。
if(di.GetFiles().Length + di.GetDirectories().Length == 0)
{
Directory.Delete(dir);
Console.WriteLine("Deleted: {0}", dir);
}
}
}
catch (Exception e)
{
Console.WriteLine("\n");
Console.WriteLine("The process failed: {0}", e.ToString());
}
Console.ReadKey();
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// 获取D盘下的所有文件夹作为变量。不包括子文件夹和文件。
string[] dirs = Directory.GetDirectories(@"D:\", "*", SearchOption.TopDirectoryOnly);
// 在删除操作之前先列出所有文件夹。
Console.WriteLine("The number of directories is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
Console.WriteLine("\n");
// 删除D盘下的空文件夹。
foreach (string dir in dirs)
{
// 判断是否为隐藏的系统文件夹或者具有只读属性。
FileAttributes attributes = File.GetAttributes(dir);
if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden ||
(attributes & FileAttributes.System) == FileAttributes.System ||
(attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine(dir + "--------" + attributes);
}
else
{
DirectoryInfo di = new System.IO.DirectoryInfo(dir);
// 判断文件夹是否为空文件夹。
if (di.GetFiles().Length + di.GetDirectories().Length == 0)
{
Directory.Delete(dir);
Console.WriteLine("Deleted: {0}", dir);
}
}
}
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("\n");
Console.WriteLine("The process failed: {0}", e.ToString());
}
Console.ReadKey();
}
}
程序完美运行!