【问题标题】:DirectoryInfo.create DirectoryNotFoundException instead of PathTooLongExceptionDirectoryInfo.create DirectoryNotFoundException 而不是 PathTooLongException
【发布时间】:2018-11-05 16:32:54
【问题描述】:

当路径超过 260 个字符时,DirectoryInfo.Create 会抛出 DirectoryNotFoundException。我了解无法创建目录,但该方法也支持PathTooLongException。为什么不扔呢?当路径的长度 >248 且 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) 进行了测试,在那里我总是得到一个路径为 264 个字符的PathTooLongException

【问题讨论】:

标签: c# directoryinfo


【解决方案1】:

不一定。

不管path 有多长,都会抛出无效路径(例如未映射的驱动器)DirectoryNotFoundException

查看源码here

【讨论】:

  • 是的,你是对的,但只是减小路径(最后一个文件夹的名称)的大小,直到我达到 260 个字符长,我得到一个 PathTooLongException
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多