見出し画像

C#でダミーデータを作成する

C#でサイズを指定してダミーのデータを作成するためのコード。
サイズが大きくなると処理がだんだん遅くなっていくのは要修正。

//cs
var gbSize = 1; //1GB

var fileName = "dummy.dat";
var fileSize = (long)(gbSize * 1024 * 1024 * 1024); // GB -> Byte
var chunkSize = 1024 * 1024; // 1MBのチャンクサイズ
var totalChunks = fileSize / chunkSize; // ファイルサイズを1MBのチャンクに分割
var buffer = new byte[chunkSize];
var random = new Random();

try
{
    using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
    {
        for (long i = 0; i < totalChunks; i++)
        {
            random.NextBytes(buffer); // ランダムなデータを生成
            fs.Write(buffer, 0, buffer.Length); // ファイルに書き込む

            // 進捗を定期的にログ出力(100回ごとに表示)
            if (i % 100 == 0)
            {
                var writtenMB = (i * chunkSize) / (1024 * 1024); // MB単位で計算
                Console.WriteLine($"progress: {writtenMB} MB written.");
            }
        }

        // ファイルサイズが割り切れない場合の処理
        var remainingBytes = fileSize % chunkSize;
        if (remainingBytes > 0)
        {
            buffer = new byte[remainingBytes];
            random.NextBytes(buffer);
            fs.Write(buffer, 0, buffer.Length);
        }
    }

    Console.WriteLine($"dummy data: {devValue}GB written to {fileName}");
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

return 0;

いいなと思ったら応援しよう!