如何生成一定长度的string插入文件以符合文件大小标准?

我有要求testing一些关于文件大小的负载问题。 我有一个用C#编写的Windows应用程序,它将自动生成文件。 我知道每个文件的大小,例如。 100KB,以及要生成多less个文件。 我需要帮助的是如何生成一个小于或等于所需的文件大小的string。

伪代码:

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

你总是可以使用一个string的构造函数,该string需要一个char并且需要重复多次:

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

这给你一串5000颗星 – 调整你的需求。

最简单的方法是以下代码:

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

现在你已经有了一个string与所需的A。

用Lorem Ipsum或者其他一些重复的string填充它就像下面的伪代码一样:

 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每个字符使用两个字节。

如何做到这一点,有太多的变化。 一个是,用一堆字符填充文件。 你需要100KB? 没问题。100 * 1024 * 8 = 819200位。 一个字符是16位。 819200/16 = 51200.您需要将51,200个字符粘贴到一个文件中。 但考虑一个文件可能有额外的头/元数据,所以你可能需要考虑到这一点,并减less要写入文件的字符数。

作为您的问题的一个部分回答,我最近创build了一个可移植的WPF应用程序,可以轻松创build几乎任何大小的“垃圾”文件: https : //github.com/webmooch/FileCreator