есть ли способ выбросить новое исключение из максимального количества файлов в каталоге?Ошибка при максимальном количестве файлов
ответ
Нет, там нет ни:
вы можете поймать его с более общей
System.IO.IOException
И прочитал (лежащий в основе) сообщение вы могли бы бросить самостоятельно написанное Исключение из этого момента.
ОБНОВЛЕНИЕ I just learned. что вы используете
bool isfull = info.GetFiles().LongLength == 4.294.967.295
Недвижимость. К сожалению, он съест всю вашу память.
Поэтому использование
DirectoryInfo.EnumerateFiles().Count()
возможно в фрагментированное образом может быть лучше подход
FYI:
- 65.534 для FAT32
- 4294967295 ДЛЯ NTFS
(source)
Я предполагаю, что ваше приложение будет работать из ОЗУ, прежде чем когда-либо будет присвоено значение 'true' переменной' isFull'. Просто удерживая ссылки на эти 4 миллиарда записей в массиве, они будут потреблять 4 ГБ, и это исключает фактические строки ... –
lol, я добавил объяснение. –
Я не знаю конкретно о C#, но я знаю, что Java не имеет конкретного исключения или ошибки для полного диска. Я предлагаю просто создать свой собственный класс исключений и использовать его. Я предлагаю назвать его FullDirectoryError
или DirectoryOverflowError
, предполагая, что он достаточно серьезен, чтобы его можно было назвать ошибкой.
Что-то вроде этого?
public static void checkFileNumber(string directoryToCheck, int maxNumber)
{
if (Directory.Exists(directoryToCheck))
{
if (Directory.GetFiles(directoryToCheck).Length > maxNumber)
{
throw new Exception("Too many files in " + directoryToCheck);
}
}
}
Обязательно use System.IO;
:-)
Что такое максимальный номер каталога? – Ata
Код, который я отправил, генерирует исключение, когда в каталогеToCheck больше, чем maxNumber файлов (реальных файлов, а не каталогов). –
Теперь я понял: предел зависит от типа файловой системы. Быстрый набор выявил следующие ограничения: FAT16 512 записей, FAT32 65 534 записей, NTFS 4 294 967 295 записей –
Бросание исключений - дорогое действие; когда вы можете избежать этого, сделайте это. Попробуйте запрограммировать защиту, если это возможно. Но когда вы бросаете один, вы должны предоставить соответствующий catch для определенного исключения.
Как сказал Каспер Клейн, вы можете поймать IOException, но почему в первую очередь вы хотите поймать в любом случае? Каково компенсирующее действие в улове?
Просьба предоставить дополнительную информацию о том, чего вы хотите достичь.
- 1. Является ли Python 'sys.argv' ограниченным в максимальном количестве аргументов?
- 2. Ошибка PHP при максимальном времени выполнения
- 3. Сбой приложения при большом количестве
- 4. Ошибка при максимальном выполнении при запуске программы почтовых приложений Google
- 5. Ошибка при количестве запросов продукта по категориям
- 6. Как получить временные метки файлов при максимальном разрешении?
- 7. Выполнение такого же преобразования sed при большом количестве файлов
- 8. Неверный результат при максимальном вычислении
- 9. Ошибка: Winform Icon Скрытие с панели задач при максимальном экране
- 10. MahApps ActualWidth при максимальном увеличении слишком высокий
- 11. Поиск и замена в большом количестве файлов
- 12. получение информации о количестве выбранных файлов
- 13. Комментировать/удалять блоки в большом количестве файлов
- 14. разделение webservice в большем количестве файлов
- 15. Контроль версий на большом количестве XML-файлов
- 16. Найти количество строк в количестве файлов
- 17. Заменить строку в большом количестве файлов
- 18. Ошибка производительности при слишком большом количестве файлов css в rails 4 app?
- 19. MDI child показывает значок при максимальном
- 20. Reposition Air NativeWindow при максимальном увеличении?
- 21. Изменение размера JPanel при максимальном использовании JFrame
- 22. ограничение формы delphi не работает при максимальном
- 23. Клиент Eclipse зависает при максимальном просмотре
- 24. wxPython's GLCanvas не изменяется при максимальном кадре
- 25. ScrollBar не изменяется при максимальном использовании JFrame
- 26. UISlider не отвечает при максимальном краевом положении
- 27. JDialog не делает перемасштабирование при максимальном
- 28. Пределы компилятора при количестве перегрузок?
- 29. Ошибка при записи файлов
- 30. Ошибка при открытии файлов
Ваш вопрос очень расплывчатый. Пожалуйста, будьте более конкретными и прочитайте http://tinyurl.com/so-hints. –
Что вы пытались сделать, когда вы нажимаете максимальное количество файлов в каталоге? Написание новых файлов? – chakrit
Я предполагаю, что возникнет исключение или ошибка при создании следующего файла системой. Вы имеете в виду программный лимит? Что вы хотите сделать для этого исключения? Записать файл в другое место? Затем просто структурируйте свои каталоги заранее, чтобы избежать этой ситуации (с датой или некоторым счетчиком в имени каталога) ... – pascal