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); } }
private static void SetCompressionMethod(FileType ft, DatHeader dh) { 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; } }
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; } }
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); } }
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"); }