Often we need test files during development, either to see how an application behaves with differently sized files or just as a "payload" for various tests.
The Make-A-File utility is written just for this purpose - to create files. They can be between 1 byte and 18 Eb (Exabytes, thats about 18.432.000.000.000.000.000 bytes) filled with garbage, random values or zeroes.
Choose a filename (type or click on the "..." button) and a size. The size is made up by the number in the size field and a unit from the dropdown list. The dropdown list offers Bytes, Kb, Mb, Gb, Tb, Pb and Eb (each being a 1000 times bigger than the previous). The resulting file size in bytes is shown in the field at the bottom.
The checkbox "Random content" fills the file with, who would have guessed this, random bytes. The "Quick Create" checkbox is used to create a file quick and filled with garbage. Technically it uses
SetFilePointer() to set the end of the file, which results in nothing being written to the file but allocates the disk space for its contents.
Please see the MSDN for the implications.
By default, the quick create also checks the random content.
If you are using NTFS with file compression enabled, you can easily create a 10 Tb (or even bigger) file on any hard disk if you do not enable the random content or quick create options.
How this works?
Simple, if none of these options is enabled then the program will write a stream of zeroes to the disk which get compressed to literally nothing on the file system. Any file which contains only all the same bytes allocates only one unit for the directory entry.
It is written with MFC under VC6 und is tested under W2k and XP Pro (but should run on any Win32 plattform). The archive contains a release executable and the source code.