gpt4 book ai didi

c# - 从 DirectoryInfo.GetFiles 返回的 FileInfo 没有指向文件?

转载 作者:行者123 更新时间:2023-11-30 14:50:00 28 4
gpt4 key购买 nike

这个方法是我从 backgroundworker dowork 事件中调用的

void WalkDirectoryTree(System.IO.DirectoryInfo root)
{
try
{
files = root.GetFiles("*.cs");
int Vara = File.ReadAllText(files[0].Name).Contains("namespace") ? 1 : 0;
}
catch (UnauthorizedAccessException e)
{
}
catch (System.IO.DirectoryNotFoundException e)
{
Console.WriteLine(e.Message);
}
}

问题是我在线上遇到异常:

int Vara = File.ReadAllText(files[0].Name).Contains("namespace") ? 1 : 0;

Could not find file 'D:\C-Sharp\Search_Text_In_Files\Search_Text_In_Files\Search_Text_In_Files\bin\Debug\Logger.cs'

最佳答案

使用 FileInfo.Name 您只能获取文件名,而不是完整路径。

因此,您正在尝试读取相对于当前目录的文件,但该文件不存在。

改为获取完整路径,即 FileInfo.FullName 而不是 FileInfo.Name

如果你想读取所有文件,你应该遍历文件而不是只读取第一个文件(files[0]),后者无论如何都是危险的,因为如果没有找到文件。

foreach (var fileInfo in files)
{
int Vara = File.ReadAllText(fileInfo.FullName).Contains("namespace") ? 1 : 0;

}

关于c# - 从 DirectoryInfo.GetFiles 返回的 FileInfo 没有指向文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37830260/

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