2011-12-07 5 views
12

ランダムなデータが含まれていても特定のサイズのファイルを作成する必要があります。私はこれを行う効率的な方法を理解できません。特定のサイズの新しいファイルを作成する

現在、私は、ファイルに空の文字列を書き込むためにBinaryWriterを使用しようとしていますが、特定のサイズに

char[] charArray = new char[oFileInfo.FileSize]; 

using (BinaryWriter b = new BinaryWriter(File.Open(strCombined, FileMode.Create), System.Text.Encoding.Unicode)) 
{ 
    b.Write(charArray); 
} 

提案を配列を作成しようとしたとき、私はメモリ不足の例外を取得しますか?

ありがとうございました。

+0

oFileInfoとは何ですか? – Hammerstein

+0

それはどのように大きい 'oFileInfo.FileSize'に依存します。とにかくそれは良いようです... – Marco

+0

あなたのファイルサイズは? – Peter

答えて

22

私が作成したいファイルのオブジェクト。 FileSizeのサイズはintです。

ありがとうございました。

0

あなたのFileSizeは非常に大きいようです。 小さいファイルサイズでも動作しますか?

はいあなたはバッファで動作する必要がある場合(希望のサイズに達するまでのchar []はほんの一部の100バイトとあなたのループである)

6

これは100バイト

System.IO.File.WriteAllBytes("file.txt", new byte[100]); 
あるファイルを作成します。

何とか私は必要なランダムなデータについての部分を見逃しました。ランダムなデータがフォームを来ている場所にDepnding、あなたのような何かを行うことができ、次の

http://msdn.microsoft.com/en-us/library/system.io.filestream.setlength.aspx

using (var fs = new FileStream(strCombined, FileMode.Create, FileAccess.Write, FileShare.None)) 
{ 
    fs.SetLength(oFileInfo.FileSize); 
} 

oFileInfoは、カスタムファイル情報です:私は実際にこれを使用するために必要な

//bytes to be read 
var bytes = 4020; 

//Create a file stream from an existing file with your random data 
//Change source to whatever your needs are. Size should be larger than bytes variable 
using (var stream = new FileInfo("random-data-file.txt").OpenRead()) 
{ 
    //Read specified number of bytes into byte array 
    byte[] ByteArray = new byte[bytes]; 
    stream.Read(ByteArray, 0, bytes); 

    //write bytes to your output file 
    File.WriteAllBytes("output-file.txt", ByteArray); 
} 
関連する問題