Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Miroslav Stampar http://mstampar.awardspace.com

« Newer Snippets
Older Snippets »
Showing 1-1 of 1 total  RSS 

Wipe file

   1  
   2          public static void Wipe(string fileName)
   3          {
   4              if (File.Exists(fileName))
   5              {
   6                  File.SetAttributes(fileName, FileAttributes.Normal);
   7                  Random rnd = new Random((int)DateTime.Now.Ticks);
   8                  FileStream file = File.Open(fileName, FileMode.Open, FileAccess.Write);
   9                  int fileLength = (int)file.Length;
  10                  int offset = 0;
  11  
  12                  const int BUFFER_SIZE = 100;
  13                  byte[][] buffers = new byte[4][];
  14                  buffers[0] = new byte[BUFFER_SIZE];
  15                  buffers[1] = new byte[BUFFER_SIZE];
  16                  buffers[2] = new byte[BUFFER_SIZE];
  17                  buffers[3] = new byte[BUFFER_SIZE];
  18  
  19                  rnd.NextBytes(buffers[0]);
  20                  rnd.NextBytes(buffers[2]);
  21                  for (int i = 0; i < BUFFER_SIZE; i++)
  22                  {
  23                      buffers[1][i] = 0;
  24                      buffers[3][i] = 0xff;
  25                  }
  26  
  27                  while (offset < (fileLength - BUFFER_SIZE))
  28                  {
  29                      for (int i = 0; i < buffers.Length; i++)
  30                      {
  31                          file.Seek(offset, SeekOrigin.Begin);
  32                          file.Write(buffers[0], 0, BUFFER_SIZE);
  33                          file.Flush();
  34                      }
  35                      offset += 100;
  36                  }
  37  
  38                  for (int i = 0; i < buffers.Length; i++)
  39                  {
  40                      file.Seek(offset, SeekOrigin.Begin);
  41                      file.Write(buffers[0], 0, fileLength - offset);
  42                      file.Flush();
  43                  }
  44  
  45                  file.Close();
  46  
  47                  file = File.Open(fileName, FileMode.Truncate, FileAccess.Write);
  48                  file.Flush();
  49                  file.Close();
  50  
  51                  File.Delete(fileName);
  52              }
  53          }
  54   
« Newer Snippets
Older Snippets »
Showing 1-1 of 1 total  RSS