2011-12-07 34 views
12

Rastgele veriler içeren ancak belirli bir boyuta sahip dosyalar oluşturmam gerekiyor. Bunu yapmanın verimli bir yolunu anlayamıyorum.Belirli bir boyuta sahip yeni dosya oluştur

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

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

Öneriler belirli bir boyuta dizi oluşturmaya çalışırken

Şu anda bir dosyaya boş bir karakter dizisi yazmaya BinaryWriter kullanmaya çalışıyorum ama Bellek İstisna Out of olsun?

Teşekkürler.

+0

oFileInfo nedir? – Hammerstein

+0

Büyük 'oFileInfo.FileSize'; her neyse iyi görünüyor ... – Marco

+0

Dosyaların nedir? – Peter

cevap

22

oluşturmak istediğim dosyanın nesnesi. FileSize, int boyutundadır.

Teşekkürler.

0

FileSize'iniz çok büyük gibi görünüyor. Daha küçük bir dosya boyutuyla çalışır mı? evet sen bir tampon ile çalışması gerekir eğer

6

Bu 100 bayt

System.IO.File.WriteAllBytes("file.txt", new byte[100]); 
bir dosya oluşturur (Char [] ulaşıldı istediğiniz boyuta gelene kadar sadece bazı 100 bayt ve size döngü)

Bir şekilde ihtiyaç duyulan rastgele verilerle ilgili bölümü kaçırdım. rasgele veri formu geldiği yerlere Depnding, gibi bir şey yapabileceğini aşağıdadır:

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 özel dosya bilgileri: Ben aslında bu kullanmak için gereken

//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); 
} 
İlgili konular