internal FATX_Browser.FATX.IOWriter GetWriterIO() { if (DriveType == Info.DriveType.HDD) { try { io.Close(); } catch { } try { br.Close(); } catch { } try { bw.Close(); } catch { } io = new IO.HDDFATX(false, null); bw = io.bw_diskWriter(DeviceID); } else if (DriveType == Info.DriveType.Backup) { try { io.Close(); } catch{} try { br.Close(); } catch{} try { bw.Close(); } catch { } io = new IO.HDDFATX(true, DumpPath); bw = io.bw_dumpWriter(); } else if (DriveType == Info.DriveType.USB) { try { io.Close(); } catch { } try { br.Close(); } catch { } try { bw.Close(); } catch { } 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_Browser.FATX.IOWriter bw_dumpWriter() { try { bw.Close(); } catch { } bw = new FATX_Browser.FATX.IOWriter(fs_dumpStream()); try { driveSize = bw.BaseStream.Length; } catch { } return bw; }
public bool BackupDrive(ref long Progress, string savePath) { FATX_Browser.FATX.IOWriter fileWriter = null; FATX_Browser.FATX.IOReader driveReader = null; try { long driveSize =DriveSize; fileWriter = new FATX_Browser.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; } }
/// <summary> /// Returns a binary writer to write to the disk /// </summary> protected internal FATX_Browser.FATX.IOWriter bw_diskWriter(int deviceNumber) { try { bw.Close(); } catch { } bw = new FATX_Browser.FATX.IOWriter(fs_diskStream(deviceNumber)); return bw; }