Decidi criar uma nova versão, para experimentar a transformação de strings para a base 64. Na primeira versão, o DiskFiller 'enche' um ficheiro ao escrever uma string com 1024 caracteres, cada um ocupando o espaço de 1 byte. Assim, era escrito 1 KiloByte de cada vez. Se criar um ficheiro com 1 KB no DiskFiller 1, verá que este é apenas uma data de "%". Nesta nova versão, há três opções para encher o disco:
- Utilizar um caracter ao calhas;
- Utilizar uma sequência de caracteres ao calhas;
- Utilizar uma sequência de caracteres ao calhas na base 64.
Na primeira opção, é criada uma string com 1024 caracteres preenchida apenas com um caracter ao calhas, repetido. Esta opção é a mais rápida. Na segunda opção, é criada uma string com 1024 caracteres preenchida com vários caracteres ao calhas. Esta opção é muito mais lenta que a primeira (pelo menos umas cinco vezes). A terceira opção faz o mesmo que a segunda, mas transforma a string gerada para a base 64. Esta é a opção mais lenta de todas, e aumenta cerca de 33% o tamanho do ficheiro. Por exemplo, crie um ficheiro com 100 MegaBytes, com a primeira opção seleccionada. O ficheiro vai ter 100 MB. Se a opção escolhida fosse a terceira, o ficheiro ficaria com 133 MB. Esta versão já foi superada pela versão 2.1. Como a maior parte dos programas deste site (ou que ainda estão para vir), a versão 2.0 do DiskFiller também necessita do .NET Framework v2.0.

Downloads
|
DiskFiller20src.zip Size : 13 Kb Type : zip |
Código
1: private string GetRandomString(int size)
2: {
3: Random r = new Random();
4: string str = "";
5: for (int x = 0; x < size; x++)
6: str += Char.ConvertFromUtf32(r.Next(97, 122));
7: return str;
8: }
Conversão de uma string para a base 64:
1: private string ConvertStringToBase64(string str)
2: {
3: try
4: {
5: byte[] bytes = new byte[str.Length];
6: bytes = System.Text.Encoding.UTF8.GetBytes(str);
7: string encodedString = Convert.ToBase64String(bytes);
8: return encodedString;
9: }
10: catch (Exception ex)
11: {
12: throw new Exception("Erro ao converter uma string para a base 64.\n\nMensagem:\n" + ex.Message);
13: }
14: }