web-dev-qa-db-ja.com

ファイルサイズの基準を満たすためにファイルに挿入する特定の長さの文字列を生成する方法

ファイルサイズに関して負荷の問題をテストする必要があります。 C#で記述されたWindowsアプリケーションを使用して、ファイルを自動的に生成します。各ファイルのサイズを知っています。 100KB、および生成するファイルの数。必要なのは、必要なファイルサイズ以下の文字列を生成する方法です。

擬似コード:

long fileSizeInKB = (1024 * 100); //100KB
int numberOfFiles = 5;

for(var i = 0; i < numberOfFiles - 1; i++) {
     var dataSize = fileSizeInKB;
     var buffer = new byte[dataSize];
     using (var fs = new FileStream(File, FileMode.Create, FileAccess.Write)) {

     }
}
96
VajNyiaj

charとその文字を繰り返したい回数をとる文字列のコンストラクタをいつでも使用できます:

string myString = new string('*', 5000);

これにより、5000個の星の文字列が得られます。ニーズに合わせて調整してください。

284
marc_s

最も簡単な方法は次のコードです:

var content = new string('A', fileSizeInKB);

これで、必要な数のAを含む文字列ができました。

Lorem Ipsumまたはその他の繰り返し文字列を入力するには、次の擬似コードのようなものを作成します。

string contentString = "Lorem Ipsum...";
for (int i = 0; i < fileSizeInKB / contentString.Length; i++)
  //write contentString to file

if (fileSizeInKB % contentString.Length > 0)
  // write remaining substring of contentString to file

編集:Unicodeで保存している場合、ファイルサイズの数を半分にする必要があるかもしれません。Unicodeは正しく覚えていれば文字ごとに2バイトを使用するからです。

13

これを行う方法には非常に多くのバリエーションがあります。 1つは、ファイルに大量の文字を入力することです。 100KBが必要ですか?問題ありません。100* 1024 * 8 = 819200ビット。単一の文字は16ビットです。 819200/16 =51200。51,200文字をファイルに貼り付ける必要があります。ただし、ファイルに追加のヘッダー/メタデータがある可能性があるため、そのことを考慮して、ファイルに書き込む文字数を減らす必要がある場合があります。

1
Kon

あなたの質問に対する部分的な答えとして、私は最近、ほとんどすべてのサイズの「ジャンク」ファイルを簡単に作成するポータブルWPFアプリを作成しました: https://github.com/webmooch/FileCreator

0
Bosco