private void _updatedb(string dirs) { string[] adirs = dirs.Split(';'); Program.db.startTransaction("update"); int newFiles = 0; foreach (string dir in adirs) { if (!Directory.Exists(dir)) { Console.WriteLine("Warning: {0} does not exist!", dir); } else { Console.WriteLine("Updating {0}...", dir); FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, dir); string[] files = Directory.GetFiles(dir); String insFile = null; String crc = null; int size = 0; foreach (string file in files) { if (Program.db.findSum(file) == null) { Stream streamRom = null; ZipEntry curzEntry = null; emuRom rom = null; if (file.EndsWith("zip", true, System.Globalization.CultureInfo.CurrentCulture)) { try { ZipFile zFile = new ZipFile(file); foreach (ZipEntry zEntry in zFile) { if (curzEntry == null) { curzEntry = zEntry; } if (zEntry.Size > curzEntry.Size) { curzEntry = zEntry; } } streamRom = zFile.GetInputStream(curzEntry); size = (int)curzEntry.Size; insFile = curzEntry.Name; crc = curzEntry.Crc.ToString("X"); } catch (ZipException e) { Console.WriteLine("Error Opening file {0}, skipping...", file); streamRom = null; } } else { streamRom = File.OpenRead(file); size = (int)streamRom.Length; //This is technically error prone. insFile = file; crc = null; } try { if (streamRom != null) { rom = new emuRom(streamRom, insFile, size, crc); if (rom.Hash != null) { newFiles++; Console.WriteLine("File:\t{0}\nHash:\t{1}\nSize:\t{2}\n", file, rom.Hash, size); Program.db.Write(file, rom.Hash); } } } catch (ICSharpCode.SharpZipLib.ZipException e) { Console.WriteLine("Zip Exception:\n{0}\nSkipping file...", e); } catch (System.ArgumentException e) { Console.WriteLine("Argument Exception:\n{0}\nSkipping file...", e); } } } } } Program.db.endTransaction("update"); Console.WriteLine("Finished update. " + newFiles + " new files added to the database."); }
private void _updatedb(string dirs) { string[] adirs = dirs.Split(';'); Program.db.startTransaction("update"); int newFiles = 0; foreach (string dir in adirs) { if (!Directory.Exists(dir)) Console.WriteLine("Warning: {0} does not exist!", dir); else { Console.WriteLine("Updating {0}...", dir); FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, dir); string[] files = Directory.GetFiles(dir); String insFile=null; String crc=null; int size=0; foreach (string file in files) { if (Program.db.findSum(file) == null) { Stream streamRom = null; ZipEntry curzEntry = null; emuRom rom = null; if (file.EndsWith("zip", true, System.Globalization.CultureInfo.CurrentCulture)) { try { ZipFile zFile = new ZipFile(file); foreach (ZipEntry zEntry in zFile) { if (curzEntry == null) curzEntry = zEntry; if (zEntry.Size > curzEntry.Size) curzEntry = zEntry; } streamRom = zFile.GetInputStream(curzEntry); size = (int)curzEntry.Size; insFile = curzEntry.Name; crc = curzEntry.Crc.ToString("X"); } catch (ZipException e) { Console.WriteLine("Error Opening file {0}, skipping...", file); streamRom = null; } } else { streamRom = File.OpenRead(file); size = (int)streamRom.Length; //This is technically error prone. insFile = file; crc = null; } try { if (streamRom != null) { rom = new emuRom(streamRom, insFile, size, crc); if (rom.Hash != null) { newFiles++; Console.WriteLine("File:\t{0}\nHash:\t{1}\nSize:\t{2}\n", file, rom.Hash, size); Program.db.Write(file, rom.Hash); } } } catch (ICSharpCode.SharpZipLib.ZipException e) { Console.WriteLine("Zip Exception:\n{0}\nSkipping file...", e); } catch (System.ArgumentException e) { Console.WriteLine("Argument Exception:\n{0}\nSkipping file...", e); } } } } } Program.db.endTransaction("update"); Console.WriteLine("Finished update. " + newFiles + " new files added to the database."); }