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

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

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

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

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

textual
Листинг программы
 static void Main(string[] args)
        {
            var sw = new Stopwatch();
            sw.Start();
            long size = 1024 * 1024 * 1024;
            string fname = @"d:\shit.dat";
            using (var writer = File.Create(fname))
            {
                writer.SetLength(size);
            }
            
            using (MemoryMappedFile mf = MemoryMappedFile.CreateFromFile(fname))
            {
                byte[] bytesToWrite = System.Text.Encoding.UTF8.GetBytes("Hello");
                long pos = size - bytesToWrite.Length;
                using (var stream = mf.CreateViewStream(pos, bytesToWrite.Length))
                {
                  //  stream.Position = 0;
                    stream.Write(bytesToWrite, 0, bytesToWrite.Length);
                }
            }
                sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
 
            Console.ReadKey();
           // File.Delete(fname);
        }

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


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

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

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