DirectoryInfo.create DirectoryNotFoundException вместо PathTooLongException - PullRequest
0 голосов
/ 05 ноября 2018

DirectoryInfo.Create выбрасывает DirectoryNotFoundException, когда путь длиннее 260 символов. Я понимаю, что создать каталог невозможно, но метод также поддерживает PathTooLongException. Почему это не брошено вместо этого? Когда длина пути> 248 и <260, <code>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 голосов
/ 05 ноября 2018

Не обязательно.

Неправильный путь, например, несопоставленные диски, будет выброшен DirectoryNotFoundException, несмотря на то, как долго это path.

Проверьте исходный код здесь ,

...