Exemple #1
0
 private void ShredderBW_DoWork(object sender, DoWorkEventArgs e)
 {
     if (Globalvariables.Filepath.Length == 0)
     {
         Log("No file open!");
     }
     else
     {
         Log("Initializing stream...");
         for (int i = 0; i < Globalvariables.Passes.Count; i++)
         {
             byte val = Globalvariables.Passes[i];
             using (FileStreamEx Wiper = new FileStreamEx(Globalvariables.Filepath, System.IO.FileMode.Open))
             {
                 Log("Executing Pass " + (i + 1).ToString() + " - 0x" + val.ToString("X2"));
                 if (Globalvariables.FullBuffer)
                 {
                     byte[] buffer = new byte[Wiper.Length];
                     Utils.FillBuffer(ref buffer, val);
                     Wiper.Write(buffer);
                 }
                 if(Globalvariables.CustomBuffer)
                 {
                     int Blocksize = Globalvariables.BufferSize;
                     long Progress = 0;
                     byte[] buffer = new byte[Blocksize];
                     Utils.FillBuffer(ref buffer, val);
                     while (Progress < Wiper.Length)
                     {
                         if ((Progress + Blocksize) <= Wiper.Length)
                         {
                             Wiper.Write(buffer);
                             Progress += Blocksize;
                         }
                         else
                         {
                             int Remaining = (int)(Wiper.Length - Progress);
                             byte[] FinalBlock = new byte[Remaining];
                             Utils.FillBuffer(ref FinalBlock, val);
                             Wiper.Write(FinalBlock);
                             Progress += Remaining;
                         }
                     }
                 }
                 if (Globalvariables.OneByte)
                 {
                     while (!Wiper.eof())
                     {
                         Wiper.Write(val);
                     }
                 }
             }
         }
     }
 }