由于路径错误而没有Directory.GetFiles()的文件计数

时间:2019-02-15 13:48:29

标签: c# .net-3.5

它是关于除了文件导入工具之外还运行的进度条。因为我需要知道必须导入多少文件,所以我需要以某种方式对它们进行计数。通常我是这样的:

return new DirectoryInfo(myBaseDirectory).GetFiles("*", SearchOption.AllDirectories).Length;

这对我不起作用,因为我必须处理TooLongPathException。并且在对它们进行计数时,编译器将尝试访问导致异常的特定对象。在文件导入过程中,它已经被处理。我只是忽略了特定文件。

由于我只需要计算文件数,而不必对它们做任何事情,因此我正在寻找另一种解决方案,以计算子文件夹中的某些文件。由于我使用.net3.5,因此无法使用Directory.EnumerateFiles方法。

1 个答案:

答案 0 :(得分:0)

Zeta Long Paths库基本上是特定win32函数的包装,这些函数允许您使用长度超过260个字符的路径。我建议使用此方法或在win32文档中搜索所需的功能,然后使用p / invoke来制作自己的包装器。

请注意,如果您决定将项目更新到新的.NET版本,则从.NET 4.6.2及更高版本开始,.NET支持更大的路径。