Быстрое создание файла - C#

Узнай цену своей работы

Формулировка задачи:

Нужно создать гигабайтный файл. Происходит это в течении нескольких десятков секунд, потому что стандартные средства шарпа форматируют файловое пространство нулями. Как можно создать файл без очистки?

Решение задачи: «Быстрое создание файла»

textual
Листинг программы
  1.  static void Main(string[] args)
  2.         {
  3.             var sw = new Stopwatch();
  4.             sw.Start();
  5.             long size = 1024 * 1024 * 1024;
  6.             string fname = @"d:\shit.dat";
  7.             using (var writer = File.Create(fname))
  8.             {
  9.                 writer.SetLength(size);
  10.             }
  11.            
  12.             using (MemoryMappedFile mf = MemoryMappedFile.CreateFromFile(fname))
  13.             {
  14.                 byte[] bytesToWrite = System.Text.Encoding.UTF8.GetBytes("Hello");
  15.                 long pos = size - bytesToWrite.Length;
  16.                 using (var stream = mf.CreateViewStream(pos, bytesToWrite.Length))
  17.                 {
  18.                   //  stream.Position = 0;
  19.                     stream.Write(bytesToWrite, 0, bytesToWrite.Length);
  20.                 }
  21.             }
  22.                 sw.Stop();
  23.             Console.WriteLine(sw.ElapsedMilliseconds);
  24.  
  25.             Console.ReadKey();
  26.            // File.Delete(fname);
  27.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут