title: Safe way to programmatically move a batch of file?
body: <p>What does one need to take care of when creating a method to move (cut) a batch of file from one directory to another?</p>
  
  <p>Let's say the method signature is <code>Move(filter, sourceFolder, destinationFolder, overwrite)</code>. What do I need to take care of to avoid the risk of data loss especially when overwriting the original file and deleting of the source file is taken into account? </p>
  
  <p>Several possible scenario I am worried of: error occurs when a move is in progress, moved a file but the file are somehow corrupted, deleted a namesake file in order to allow the new file to move but then error happens when moving the new file, etc.</p>
  
  <p>I'm using .net's System.IO namespace for the move operations.</p>