//?????????????
string[] drives = Environment.GetLogicalDrives();
foreach (string driver in drives)
{
Console.WriteLine(driver);
//?????????
DriveInfo di = new DriveInfo(driver);
//????????
Console.WriteLine("isRead:" + di.IsReady);
//????
Console.WriteLine("name:" + di.Name);
//??????????
DirectoryInfo root = di.RootDirectory;
RecursiveAsync(root);
Console.WriteLine();
}
Console.ReadKey();
????//??????
private async static void RecursiveAsync(DirectoryInfo root)
{
await Task.Run(() =>
{
try
{
//??????????
FileInfo[] fis = root.GetFiles("*.*");
if (fis != null && fis.Length > 0)
{
foreach (FileInfo fi in fis)
{
//?????
string name = fi.FullName;
name = name.Length > 100 ? name.Substring(0?? 100) + "…" : name;
Console.WriteLine(name);
}
}
//???????
DirectoryInfo[] dis = root.GetDirectories();
//????????
foreach (DirectoryInfo di in dis)
{
//???????
RecursiveAsync(di);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
});
}