#c# #.net
#c# #.net
Вопрос:
Я хочу программу для повреждения файла. Когда мое приложение обращается к directoryinfo.getfiles(), оно получает исключение, в котором говорится, что файл поврежден или нечитаем.
Я хочу, чтобы программа повредила файл в файловой системе, чтобы я мог имитировать исключение.
Будем признательны за любые идеи / помощь.
Раджу
Комментарии:
1. Пожалуйста, сначала укажите, что представляет собой действительный файл. Без этой информации мы не сможем определить, как на самом деле можно повредить ваши файлы.
2. Является ли исключение исключением операционной системы или это какой-то фреймворк?
3. Звучит скорее как аппаратная проблема, чем программная.
4. Файл представляет собой файл журнала, в который in app записывает некоторые события в файл журнала. Я думаю, что это исключение из операционной системы. Для файла valif не существует правил. Единственным способом завершить работу приложения было отключить питание. Итак, при отключении питания файл был поврежден
5. Планируете ли вы также стирать свой жесткий диск, чтобы имитировать исключение, возникающее, когда Windows не удается выполнить чтение с диска? Я действительно не рекомендую это… Есть лучшие способы тестирования обработчиков исключений, чем портить ваши диски для этого.
Ответ №1:
Просто скопируйте поврежденный файл, который уже вызвал исключение. Вы могли бы встроить это как ресурс или что-то еще, а затем записать это, если вы действительно хотите.
Из любопытства, зачем вам нужна программа, которая повреждает файл для проверки на соответствие определенному исключению, когда уже поврежденный файл, вызывающий указанное исключение, не подходит?
Комментарии:
1. Это произошло в расположении клиента. У меня нет поврежденного файла.
2. В этом случае ответ @ Shane так же хорош, как и любой другой. Вероятно, вы можете просто записать случайные байты в начале, что может быть проще, чем запись в случайные местоположения.
Ответ №2:
Откройте файл в двоичном формате, затем запишите в него случайные байты в случайных местах.
Комментарии:
1. Приведенные выше предложения повреждают файл. Но это не приводит к повреждению связанных с файлом данных в файловой системе. Я получаю исключение при вызове DirectoryInfo.GetFiles. Я думаю, что при повреждении файла в системе fise только я могу получить исключение при вызове directoryinfo.getfiles.
2. @user209293 Ну, тогда я понятия не имею.
Ответ №3:
Если вы переопределите первый или последний байт файла, он, вероятно, будет поврежден, поскольку большинство форматов файлов используют там для format information
(ZIP и RAR используют конец файла, поэтому потоковая передача будет поддерживаться).