135

ファイル サイズに関する負荷の問題をテストする必要があります。ファイルを自動的に生成する 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)) {

     }
}
4

4 に答える 4

422

文字列のコンストラクターはいつでも使用できます。このコンストラクターは、charその文字を繰り返したい回数だけかかります。

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

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

于 2011-02-17T17:27:21.543 に答える
16

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

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は1文字あたり2バイトを使用するため、ファイルサイズ数を半分にする必要があるかもしれません。

于 2011-02-17T17:26:34.283 に答える
2

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

于 2011-02-17T17:13:46.823 に答える