Beispiel #1
0
 public static void CopyByBlock(string inputPath, string outputPath, CopyProgressDelegate callback = null)
 {
     using (FileStream input = File.Open(inputPath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
         using (FileStream output = File.Open(outputPath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
         {
             byte[] buffer = new byte[1024 * 1024];
             int    bytesRead;
             while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0)
             {
                 output.Write(buffer, 0, bytesRead);
                 callback?.Invoke(bytesRead);
             }
         }
     }
 }