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-2 of 2 total  RSS 

File lock

Lock files so that no one else can access it:
   1  
   2   string filename = "c:\\sample.htm";
   3   FileStream stream = new FileStream(filename, FileMode.Open, FileAccess.Read, 
   4   FileShare.None); //locks file
   5  
   6   ...
   7  
   8   stream.Close(); //unlocks file

or
   1  
   2   string filename = "c:\\sample.htm";
   3   FileStream stream = File.Open(filename, FileMode.Open);
   4   stream.Lock(0, stream.Length); //locks file
   5  
   6   ...
   7  
   8   stream.Unlock(0, stream.Length); //unlocks file

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-2 of 2 total  RSS