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 DiskFiller20src.zip
Size : 13 Kb
Type : zip


Código

Geração de uma string ao calhas:

   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:  }


Links

Make a Free Website with Yola.