gpt4 book ai didi

c# - .NET Core : IFileProvider. GetDirectoryContents 递归不起作用

转载 作者:行者123 更新时间:2023-12-05 03:05:02 26 4
gpt4 key购买 nike

我想扫描目录(“C:/test”)并递归获取所有文件 .pdf我创建了一个这样的提供者:

IFileProvider provider = new PhysicalFileProvider("C:/test"); // using config in my code and also tried with "C:/test/"

我在目录和子目录下放了一些pdf

这个路径有一个文件:C:/test/pdf59.pdf另一个 C:/test/testComplexe/pdf59.pdf

在我尝试这些行的地方,它们都返回“NotFoundDirectoryException”:

provider.getDirectoryContents(@"**")
provider.getDirectoryContents(@"*")
provider.getDirectoryContents(@"*.*")
provider.getDirectoryContents(@"**.*")
provider.getDirectoryContents(@"pdf59.pdf")
provider.getDirectoryContents(@"*.pdf")

异常(exception)这一行:

provider.getDirectoryContents(@"testComplexe")

我如何查询这些递归目录和文件?谢谢

最佳答案

您可以编写自己的递归函数。

var files = new List<IFileInfo>();
GetFiles("C:/Tests", files);

private void GetFiles(string path, ICollection<IFileInfo> files)
{
IFileProvider provider = new PhysicalFileProvider(path);

var contents = provider.GetDirectoryContents("");

foreach (var content in contents)
{
if (!content.IsDirectory && content.Name.ToLower().EndsWith(".pdf"))
{
files.Add(content);
}
else
{
GetFiles(content.PhysicalPath, files);
}
}
}

关于c# - .NET Core : IFileProvider. GetDirectoryContents 递归不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51520261/

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