/// <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); }
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); }
protected internal FATX.IOWriter bw_dumpWriter() { try { bw.Close(); } catch { } bw = new FATX.IOWriter(fs_dumpStream()); try { driveSize = bw.BaseStream.Length; } catch { } return(bw); }
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); } }
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); } }