gpt4 book ai didi

c# - 如何列出硬盘上的所有文件和文件夹?

转载 作者:行者123 更新时间:2023-11-30 13:39:20 24 4
gpt4 key购买 nike

我想列出我的程序有权访问的所有文件和文件夹,并将它们写入文本文件。我将如何获得 list ?我需要一种方法来捕获或不在不可访问的文件夹上抛出 UnauthorizedAccessExceptions。

最佳答案

请尝试使用代码:

private static IEnumerable<string> Traverse(string rootDirectory)
{
IEnumerable<string> files = Enumerable.Empty<string>();
IEnumerable<string> directories = Enumerable.Empty<string>();
try
{
// The test for UnauthorizedAccessException.
var permission = new FileIOPermission(FileIOPermissionAccess.PathDiscovery, rootDirectory);
permission.Demand();

files = Directory.GetFiles(rootDirectory);
directories = Directory.GetDirectories(rootDirectory);
}
catch
{
// Ignore folder (access denied).
rootDirectory = null;
}

if (rootDirectory != null)
yield return rootDirectory;

foreach (var file in files)
{
yield return file;
}

// Recursive call for SelectMany.
var subdirectoryItems = directories.SelectMany(Traverse);
foreach (var result in subdirectoryItems)
{
yield return result;
}
}

客户端代码:

var paths = Traverse(@"Directory path");
File.WriteAllLines(@"File path for the list", paths);

关于c# - 如何列出硬盘上的所有文件和文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com