Быстрое создание файла - 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);
}