예제 #1
0
        private static void AddZip(FileInfo f, DatDir thisDir)
        {
            ZipFile zf1 = new ZipFile();

            zf1.ZipFileOpen(f.FullName, -1, true);
            zf1.ZipStatus = ZipStatus.TrrntZip;

            DatDir ZipDir = new DatDir(zf1.ZipStatus == ZipStatus.TrrntZip ? DatFileType.DirTorrentZip : DatFileType.DirRVZip)
            {
                Name  = Path.GetFileNameWithoutExtension(f.Name),
                DGame = new DatGame()
            };

            ZipDir.DGame.Description = ZipDir.Name;
            thisDir.ChildAdd(ZipDir);



            FileScan fs = new FileScan();
            List <FileScan.FileResults> fr = fs.Scan(zf1, true, true);
            bool isTorrentZipDate          = true;

            for (int i = 0; i < fr.Count; i++)
            {
                if (fr[i].FileStatus != Compress.ZipReturn.ZipGood)
                {
                    Console.WriteLine("File Error :" + zf1.Filename(i) + " : " + fr[i].FileStatus);
                    continue;
                }

                DatFile df = new DatFile(DatFileType.FileTorrentZip)
                {
                    Name = zf1.Filename(i),
                    Size = fr[i].Size,
                    CRC  = fr[i].CRC,
                    SHA1 = fr[i].SHA1,
                    Date = zf1.LastModified(i).ToString("yyyy/MM/dd HH:mm:ss")
                           //df.MD5 = zf.MD5(i)
                };
                if (zf1.LastModified(i).Ticks != 629870671200000000)
                {
                    isTorrentZipDate = false;
                }

                ZipDir.ChildAdd(df);
            }
            zf1.ZipFileClose();
            if (isTorrentZipDate && ZipDir.DatFileType == DatFileType.DirRVZip)
            {
                ZipDir.DatFileType = DatFileType.DirTorrentZip;
            }

            if (ZipDir.DatFileType == DatFileType.DirTorrentZip)
            {
                DatSetCompressionType.SetZip(ZipDir);
                DatClean.RemoveUnNeededDirectoriesFromZip(ZipDir);
            }
        }
예제 #2
0
        private static void SetCompressionMethod(FileType ft, DatHeader dh)
        {
            switch (ft)
            {
            case FileType.Dir:
                DatSetCompressionType.SetFile(dh.BaseDir);
                return;

            case FileType.SevenZip:
                DatSetCompressionType.Set7Zip(dh.BaseDir);
                return;

            default:
                DatSetCompressionType.SetTorrentZip(dh.BaseDir);
                return;
            }
        }
예제 #3
0
        private static void SetCompressionMethod(DatRule datRule, DatHeader dh)
        {
            FileType ft = datRule.Compression;

            if (!datRule.CompressionOverrideDAT)
            {
                switch (dh.Compression?.ToLower())
                {
                case "unzip":
                case "file":
                    ft = FileType.Dir;
                    break;

                case "7zip":
                case "7z":
                    ft = FileType.SevenZip;
                    break;

                case "zip":
                    ft = FileType.Zip;
                    break;
                }
            }

            if (Settings.rvSettings.FilesOnly)
            {
                ft = FileType.Dir;
            }

            switch (ft)
            {
            case FileType.Dir:
                DatSetCompressionType.SetFile(dh.BaseDir);
                return;

            case FileType.SevenZip:
                DatSetCompressionType.SetZip(dh.BaseDir, true);
                return;

            default:
                DatSetCompressionType.SetZip(dh.BaseDir);
                return;
            }
        }
예제 #4
0
        private static void AddZip(FileInfo f, DatDir thisDir)
        {
            Zip       zf1    = new Zip();
            ZipReturn result = zf1.ZipFileOpen(f.FullName, -1, true);

            if (result != ZipReturn.ZipGood)
            {
                return;
            }

            zCount += 1;
            if ((zf1.ZipStatus & ZipStatus.TrrntZip) == ZipStatus.TrrntZip)
            {
                tCount += 1;

                Console.WriteLine($"{zCount}   {tCount}    {cCount}");
            }

            else if (zf1.Filecomment != null && zf1.Filecomment.Length > 0)
            {
                string comments = ZipUtils.GetString(zf1.Filecomment);

                if (comments.Length > 13 && comments.Substring(0, 13) == "TORRENTZIPPED")
                {
                    tCount += 1;
                }
                else
                {
                    cCount += 1;
                    Console.WriteLine(f.FullName + "   " + zCount);
                    Console.WriteLine("------------------------");
                    Console.WriteLine(comments);
                }

                Console.WriteLine($"{zCount}   {tCount}    {cCount}");
            }
            //zf1.ZipStatus = ZipStatus.TrrntZip;

            //DatDir ZipDir = new DatDir(zf1.ZipStatus == ZipStatus.TrrntZip ? DatFileType.DirTorrentZip : DatFileType.DirRVZip)
            DatDir ZipDir = new DatDir(DatFileType.UnSet)
            {
                Name  = Path.GetFileNameWithoutExtension(f.Name),
                DGame = new DatGame()
            };

            ZipDir.DGame.Description = ZipDir.Name;
            thisDir.ChildAdd(ZipDir);



            FileScan fs = new FileScan();
            List <FileScan.FileResults> fr = fs.Scan(zf1, !quick, !quick);
            bool isTorrentZipDate          = true;

            for (int i = 0; i < fr.Count; i++)
            {
                if (fr[i].FileStatus != ZipReturn.ZipGood)
                {
                    Console.WriteLine("File Error :" + zf1.Filename(i) + " : " + fr[i].FileStatus);
                    continue;
                }

                DatFile df = new DatFile(DatFileType.UnSet)
                {
                    Name         = zf1.Filename(i),
                    Size         = fr[i].Size,
                    CRC          = fr[i].CRC,
                    SHA1         = fr[i].SHA1,
                    DateModified = new DateTime(zf1.LastModified(i)).ToString("yyyy/MM/dd HH:mm:ss"),
                    DateCreated  = zf1.Created(i) == null ? null : new DateTime((long)zf1.Created(i)).ToString("yyyy/MM/dd HH:mm:ss"),
                    DateAccessed = zf1.Accessed(i) == null ? null : new DateTime((long)zf1.Accessed(i)).ToString("yyyy/MM/dd HH:mm:ss")
                                   //df.MD5 = zf.MD5(i)
                };
                if (zf1.LastModified(i) != 629870671200000000)
                {
                    isTorrentZipDate = false;
                }

                ZipDir.ChildAdd(df);
            }
            zf1.ZipFileClose();
            if (isTorrentZipDate && ZipDir.DatFileType == DatFileType.DirRVZip)
            {
                ZipDir.DatFileType = DatFileType.DirTorrentZip;
            }

            if (ZipDir.DatFileType == DatFileType.DirTorrentZip)
            {
                DatSetCompressionType.SetZip(ZipDir);
                DatClean.RemoveUnNeededDirectoriesFromZip(ZipDir);
            }
        }
예제 #5
0
        private static void ProcVer(string ver)
        {
            WriteLine();
            WriteLine();
            _lastTime = null;
            Sw.Reset();
            Sw.Start();
            DatRead dr = new DatRead
            {
                ErrorReport = ReadError
            };
            DatXMLWriter dxw = new DatXMLWriter();


            WriteLine(ver, "Reading BINDat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMS (from bin).xml", out DatHeader dh);
            dh.Name        += " (merged)";
            dh.Description += " (merged)";

            WriteLine(ver, "Dat read");
            DatClean.RemoveNonCHD(dh.BaseDir);
            WriteLine(ver, "CHD removed");
            DatClean.RemoveNoDumps(dh.BaseDir);
            WriteLine(ver, "Removed No Dumps");

            DatClean.DatSetMakeMergeSet(dh.BaseDir, false);
            WriteLine(ver, "Made Merge Set");

            DatClean.RemoveDupes(dh.BaseDir);
            WriteLine(ver, "Removed Dupes");

            DatClean.RemoveEmptySets(dh.BaseDir);
            WriteLine(ver, "Removed Empty Sets");

            DatSetCompressionType.SetZip(dh.BaseDir);
            WriteLine(ver, "Set TorrentZip");
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " CHDs (merged-fromBin).xml", dh);

            WriteLine(ver, "Reading Dat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " CHDs (merged).xml", out dh);
            DatSetCompressionType.SetZip(dh.BaseDir);
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " CHDs (merged-sorted).xml", dh);

            WriteLine(ver, "Done Set 2");



            WriteLine(ver, "Reading BINDat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMS (from bin).xml", out dh);
            dh.Name        += " (split)";
            dh.Description += " (split)";

            WriteLine(ver, "Dat read");
            DatClean.RemoveCHD(dh.BaseDir);
            WriteLine(ver, "CHD removed");
            DatClean.RemoveNoDumps(dh.BaseDir);
            WriteLine(ver, "Removed No Dumps");

            DatClean.DatSetMakeSplitSet(dh.BaseDir);
            WriteLine(ver, "Made Split Set");
            DatClean.RemoveNotCollected(dh.BaseDir);
            WriteLine(ver, "Removed Not Collected");


            DatClean.RemoveDupes(dh.BaseDir);
            WriteLine(ver, "Removed Dupes");

            DatClean.RemoveEmptySets(dh.BaseDir);
            WriteLine(ver, "Removed Empty Sets");

            DatSetCompressionType.SetZip(dh.BaseDir);
            WriteLine(ver, "Set TorrentZip");
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMS (split-fromBin).xml", dh);


            WriteLine(ver, "Reading Dat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMs (split).xml", out dh);
            DatSetCompressionType.SetZip(dh.BaseDir);
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMs (split-sorted).xml", dh);

            WriteLine(ver, "Done Set 1");


            WriteLine(ver, "Reading BINDat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMS (from bin).xml", out dh);
            dh.Name        += " (merged)";
            dh.Description += " (merged)";

            WriteLine(ver, "Dat read");
            DatClean.RemoveCHD(dh.BaseDir);
            WriteLine(ver, "CHD removed");
            DatClean.RemoveNoDumps(dh.BaseDir);
            WriteLine(ver, "Removed No Dumps");

            DatClean.DatSetMakeMergeSet(dh.BaseDir);
            WriteLine(ver, "Made Merge Set");

            DatClean.RemoveDupes(dh.BaseDir);
            WriteLine(ver, "Removed Dupes");

            DatClean.RemoveEmptySets(dh.BaseDir);
            WriteLine(ver, "Removed Empty Sets");

            DatSetCompressionType.SetZip(dh.BaseDir);
            WriteLine(ver, "Set TorrentZip");
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMS (merged-fromBin).xml", dh);

            WriteLine(ver, "Reading Dat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMs (merged).xml", out dh);
            DatSetCompressionType.SetZip(dh.BaseDir);
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMs (merged-sorted).xml", dh);

            WriteLine(ver, "Done Set 2");



            WriteLine(ver, "Reading BINDat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMS (from bin).xml", out dh);
            dh.Name        += " (non-merged)";
            dh.Description += " (non-merged)";


            WriteLine(ver, "Dat read");
            DatClean.RemoveCHD(dh.BaseDir);
            WriteLine(ver, "CHD removed");
            DatClean.RemoveNoDumps(dh.BaseDir);
            WriteLine(ver, "Removed No Dumps");

            DatClean.DatSetMakeNonMergeSet(dh.BaseDir);
            WriteLine(ver, "Made Merge Set");
            DatClean.RemoveDupes(dh.BaseDir);
            WriteLine(ver, "Removed Dupes");

            DatClean.RemoveEmptySets(dh.BaseDir);
            WriteLine(ver, "Removed Empty Sets");

            DatSetCompressionType.SetZip(dh.BaseDir);
            WriteLine(ver, "Set TorrentZip");
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMS (non-merged-fromBin).xml", dh);

            WriteLine(ver, "Reading Dat Set");
            dr.ReadDat(@"TestDATs\MAME " + ver + " ROMs (non-merged).xml", out dh);
            DatSetCompressionType.SetZip(dh.BaseDir);
            dxw.WriteDat(@"TestDATs\out\MAME " + ver + " ROMs (non-merged-sorted).xml", dh);

            WriteLine(ver, "Done Set 3");
        }