Предварительно выделить файловое пространство в C #?

Поскольку C # не разрешает этот тип преобразования наследования в данный момент .

16
задан Matthew Scharley 19 September 2008 в 01:50
поделиться

3 ответа

FileStream. SetLength является тем, который Вы хотите. Синтаксис:

public override void SetLength(
    long value
)
26
ответ дан TylerH 19 September 2008 в 12:50
поделиться

Если необходимо создать файл, я думаю, что можно, вероятно, сделать что-то вроде этого:

using (FileStream outFile = System.IO.File.Create(filename))
{
    outFile.Seek(<length_to_write>-1, SeekOrigin.Begin);
    OutFile.WriteByte(0);
}

, Где length_to_write был бы размером в байтах файла для записи. Я не уверен, что у меня есть корректный синтаксис C# (не на компьютере для тестирования), но я сделал подобные вещи в C++ в прошлом, и это работало.

5
ответ дан Mark 19 September 2008 в 12:50
поделиться
  • 1
    +1 для хорошей идеи рендеринга. I' m менее жизнерадостный об установке специальных шрифтов. Можно ли уточнить практичность? – trashgod 11 October 2011 в 12:51

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

2
ответ дан user10392 19 September 2008 в 12:50
поделиться
  • 1
    @trashgod: Я запустил Microsoft Word и посмотрел на таблицу символов для "Таймс" Новый римский шрифт. Части 1/3 (код символа x' 2153'), 2/3 (x' 2154'), 1/8 (x' 215B'), 3/8 (x' 215C'), 5/8 (x' 215D'), и 7/8 (x' 215E') имеют коды символов. 1/4 (x' 00BC'), 1/2 (x' 00BD'), и 3/4 (x' 00BE') имеют коды символов. Если Вам просто нужны части одной восьмой, чем этот метод мог бы работать. – Gilbert Le Blanc 12 October 2011 в 00:49
Другие вопросы по тегам:

Похожие вопросы: