DirectoryInfo.create DirectoryNotFoundException而不是PathTooLongException

时间:2018-11-05 16:32:54

标签: c# directoryinfo

当路径长度超过260个字符时,

DirectoryInfo.Create抛出DirectoryNotFoundException。我知道无法创建目录,但是该方法还支持PathTooLongException。为什么不扔呢?当路径的长度大于248并且小于260时,将抛出PathTooLongException。两种情况都不应该抛出相同的异常吗?

我的代码:

DirectoryInfo fullArchiveDirectoryInfo = new DirectoryInfo(fullArchiveDirectory);
fullArchiveDirectoryInfo.Create();

我的项目针对.NET Framework 4.6.2。

(更新1)

例如:

  • C:(...)-9223372036854775808 \ 86dcadfc1e0746649408-264个字符-DirectoryNotFoundException
  • C:(...)-9223372036854775808 \ 86dcadfc1e074664-260个字符-PathTooLongException
  • C:(...)-9223372036854775808 \ f872-248个字符-也不例外

附加说明:我使用LinqPad(v5.31.00)进行了测试,总能得到PathTooLongException,其路径长度为264个字符。

1 个答案:

答案 0 :(得分:0)

不一定。

尽管DirectoryNotFoundException多长时间,无效路径(例如未映射的驱动器)仍将抛出path

检查源代码here