How to generate string of a certain length to insert into a file to meet a file size criteria?

VajNyiaj picture VajNyiaj · Feb 17, 2011 · Viewed 74.8k times · Source

I have a requirement to test some load issues with regards to file size. I have a windows application written in C# which will automatically generate the files. I know the size of each file, ex. 100KB, and how many files to generate. What I need help with is how to generate a string less than or equal to the required file size.

pseudo code:

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)) {

     }
}

Answer

marc_s picture marc_s · Feb 17, 2011

You can always use the a constructor for string which takes a char and a number of times you want that character repeated:

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

This gives you a string of 5000 stars - tweak to your needs.