public static void ChdManCheck(RvFile tFile, string directory, ThreadWorker thWrk, ref bool fileErrorAbort) { string filename = Path.Combine(directory, tFile.Name); if (tFile.FileStatusIs(FileStatus.AltSHA1FromHeader | FileStatus.AltSHA1Verified)) { return; } thWrk.Report(new bgwText2(filename)); CHD.CHDManCheck res = CHD.ChdmanCheck(filename, thWrk, out string error); switch (res) { case CHD.CHDManCheck.Good: tFile.FileStatusSet( (tFile.AltSHA1 != null ? FileStatus.AltSHA1Verified : 0) | (tFile.AltMD5 != null ? FileStatus.AltMD5Verified : 0) ); return; case CHD.CHDManCheck.Corrupt: thWrk.Report(new bgwShowError(filename, error)); tFile.GotStatus = GotStatus.Corrupt; return; case CHD.CHDManCheck.CHDReturnError: case CHD.CHDManCheck.CHDUnknownError: thWrk.Report(new bgwShowError(filename, error)); return; case CHD.CHDManCheck.ChdmanNotFound: return; case CHD.CHDManCheck.CHDNotFound: ReportError.Show("File: " + filename + " Error: Not Found scan Aborted."); fileErrorAbort = true; return; default: ReportError.UnhandledExceptionHandler(error); return; } }
private static void ChdManCheck(string directory, RvFile tFile) { string filename = Path.Combine(directory, tFile.Name); if (!tFile.FileStatusIs(FileStatus.SHA1CHDFromHeader)) { return; } _bgw.ReportProgress(0, new bgwText2(filename)); string error; CHD.CHDManCheck res = CHD.ChdmanCheck(filename, _bgw, out error); switch (res) { case CHD.CHDManCheck.Good: tFile.FileStatusSet(FileStatus.SHA1CHDVerified); return; case CHD.CHDManCheck.Corrupt: _bgw.ReportProgress(0, new bgwShowError(filename, error)); tFile.GotStatus = GotStatus.Corrupt; return; case CHD.CHDManCheck.CHDReturnError: case CHD.CHDManCheck.CHDUnknownError: _bgw.ReportProgress(0, new bgwShowError(filename, error)); return; case CHD.CHDManCheck.ChdmanNotFound: return; case CHD.CHDManCheck.CHDNotFound: ReportError.Show("File: " + filename + " Error: Not Found scan Aborted."); _fileErrorAbort = true; return; default: ReportError.UnhandledExceptionHandler(error); return; } }