コード例 #1
0
ファイル: Utils.cs プロジェクト: vidarw/RVWorld
        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;
            }
        }
コード例 #2
0
ファイル: FileScanning.cs プロジェクト: tvierling/RomVault
        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;
            }
        }