Я столкнулся с чем-то любопытным.У меня есть декомпилятор, который извлекает информацию из двоичного файла.Я извлекаю серию объектов, которые мне нужно записать отдельно на диск в виде двоичных файлов.Эти объекты являются графическими моделями, скомпилированными в библиотеку.Объекты имеют встроенные имена, и мне нужно использовать это имя в качестве имени файла.
Я использую:
try {
// Open file for reading .
using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
// Writes a block of bytes to this stream using data from a byte array. .
fileStream.Write(byteArray, 0, byteArray.Length);
// close file stream .
fileStream.Close();
}
return true;
}
catch (Exception exception) {
return false;
}
Я понимаю, что обработка исключений невелика!Однако проблема обнаружилась, когда один из сохраняемых объектов имел имя COM2. Это вызвало исключение:
FileStream не будет открывать устройства Win32, такие как дисковые разделы и ленточные накопители.
Так что в моем примере я пытаюсь написать файл с именем COM2.mdl и получить эту ошибку.Я действительно не хочу менять эти имена, так как они встроены разработчиком.
Я рассматривал возможность проверки имен по списку устройств, которые могут вызвать ошибку - но я действительно не знаю, чтоэтот список может быть, а также это будет означать изменение имени файла, который я не хочу делать.
Итак, мой вопрос: есть ли способ записать байтовый массив в виде двоичного файла, кроме как сFileStream, который может решить эту проблему?
Большое спасибо