我有一段 C# 代码,我尝试在其中列出目录中的一些文件。列出文件时,我收到 FileNotFoundException (尚未捕获),但我不明白为什么......
try
{
String[] files = Directory.GetFiles(directory);
FileInfo fi = new FileInfo(file);
long size = fi.Length;
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("Cannot enumerate files from " + directory);
}
目录的值为
D:\_temporary_files\2024_temporary_files_temporary_file-2024-07-21_-_author_unknown_length_unknown_size_unknown\2024_temporary_files_temporary_file-2024-07-21_-_author_unknown_length_unknown_size_unknown
给我 FileNotFoundException 的文件是
D:\_temporary_files\2024_temporary_files_temporary_file-2024-07-21_-_author_unknown_length_unknown_size_unknown\2024_temporary_files_temporary_file-2024-07-21_-_author_unknown_length_unknown_size_unknown\2024_temporary_files_temporary_file-2024-07-21_-_17-11-00-0001.dat
我尝试从根 D: 开始递归地列出目录中的文件,但当我点击上面的文件/目录时,出现 FileNotFoundException。
我怀疑它可能与路径/文件名的长度有关,但我可以在 Windows (10)、记事本、其他编辑器、其他文件浏览器等中完美地查看、列出、编辑文件。
既然所有其他软件工具处理这个文件似乎都没有问题,为什么我在 C# 中遇到这个异常?
谢谢!
编辑:在我的匆忙中,我遗漏了生成 FileNotFoundException 的代码片段 - 获取文件的长度会引发错误。