我正在尝试编写一个简单的代码,将驱动器中的所有文件夹写入控制台。
要跳过未经授权访问的文件夹,我使用了try catch块。有些程序员不接受这种优雅的编码。
有没有更好的方法来做到这一点。
这是我写的。
static void Main(string[] args)
{
Queue<DirectoryInfo> directories = new Queue<DirectoryInfo>();
DirectoryInfo dr = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
directories.Enqueue(dr.Root);
DirectoryInfo[] subdr = null;
while (directories.Count > 0)
{
dr = directories.Dequeue();
Console.WriteLine(dr.ToString());
try
{
subdr = dr.GetDirectories();
foreach (DirectoryInfo directory in subdr)
{
if (directory.Exists)
directories.Enqueue(directory);
}
}
catch (UnauthorizedAccessException e) { Console.WriteLine(e.Message); }
}
}