Exemple #1
0
 /// <summary>
 /// Returns a binary writer to write to the disk
 /// </summary>
 protected internal FATX.IOWriter bw_diskWriter(int deviceNumber)
 {
     try { bw.Close(); }
     catch { }
     bw = new FATX.IOWriter(fs_diskStream(deviceNumber));
     return(bw);
 }
Exemple #2
0
 internal FATX.IOWriter GetWriterIO()
 {
     if (DriveType == Info.DriveType.HDD)
     {
         CloseIO();
         io = new IO.HDDFATX(false, null);
         bw = io.bw_diskWriter(DeviceID);
     }
     else if (DriveType == Info.DriveType.Backup)
     {
         CloseIO();
         io = new IO.HDDFATX(true, DumpPath);
         bw = io.bw_dumpWriter();
     }
     else if (DriveType == Info.DriveType.USB)
     {
         CloseIO();
         System.IO.FileInfo[] fi        = new System.IO.DirectoryInfo(DumpPath).GetFiles();
         string[]             FilePaths = new string[fi.Length];
         for (int i = 0; i < FilePaths.Length; i++)
         {
             FilePaths[i] = fi[i].FullName;
         }
         bw = new IOWriter(FilePaths);
     }
     return(bw);
 }
Exemple #3
0
 protected internal FATX.IOWriter bw_dumpWriter()
 {
     try { bw.Close(); }
     catch { }
     bw = new FATX.IOWriter(fs_dumpStream());
     try
     {
         driveSize = bw.BaseStream.Length;
     }
     catch { }
     return(bw);
 }
Exemple #4
0
 public bool RestoreBackup(ref long Progress, string inFile)
 {
     FATX.IOReader fileReader  = null;
     FATX.IOWriter driveWriter = null;
     try
     {
         long driveSize = DriveSize;
         fileReader  = new FATX.IOReader(new System.IO.FileStream(inFile, System.IO.FileMode.Open));
         driveWriter = this.GetWriterIO();
         for (long i = 0; i < driveSize; i += 0x4000, Progress += 0x4000)
         {
             byte[] buffer = fileReader.ReadBytes(0x4000);
             driveWriter.Write(buffer);
         }
         driveWriter.Close();
         fileReader.Close();
         return(true);
     }
     catch { try { fileReader.Close(); driveWriter.Close(); } catch { } return(false); }
 }
Exemple #5
0
 public bool BackupDrive(ref long Progress, string savePath)
 {
     FATX.IOWriter fileWriter  = null;
     FATX.IOReader driveReader = null;
     try
     {
         long driveSize = DriveSize;
         fileWriter  = new FATX.IOWriter(new System.IO.FileStream(savePath, System.IO.FileMode.Create));
         driveReader = this.GetIO();
         for (long i = 0; i < driveSize; i += 0x4000, Progress += 0x4000)
         {
             byte[] buffer = driveReader.ReadBytes(0x4000);
             fileWriter.Write(buffer);
         }
         fileWriter.Close();
         driveReader.Close();
         return(true);
     }
     catch { try { fileWriter.Close(); driveReader.Close(); } catch { } return(false); }
 }