Запись файла с именем устройстваC#

Место общения программистов C#
Ответить
Anonymous
 Запись файла с именем устройства

Сообщение Anonymous »

Я столкнулся с чем-то любопытным. У меня есть декомпилятор, который извлекает информацию из двоичного файла. Я извлекаю ряд объектов, которые мне нужно отдельно записать на диск в виде двоичных файлов. Эти объекты представляют собой графические модели, скомпилированные в библиотеку. В объекты встроены имена, и мне нужно использовать это имя в качестве имени файла.

Я использую:

Код: Выделить всё

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, который мог бы преодолеть эта проблема?

Большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/537 ... f-a-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»