/// <summary> /// Load items from the file. /// </summary> /// <param name="path">Full path to the file to load.</param> /// <param name="fileType">Type of the file to load.</param> /// <returns></returns> public bool LoadFile(string path, SumFileType fileType) { bool success = false; SumFile newSumFile = new SumFile(); if (newSumFile != null) { SetSumTypeFromFileType(fileType); newSumFile.SetFileList(_checksumItemList); int items = 0; try { items = newSumFile.ReadFile(path, _currentSumType); } catch (Exception) { } if (items > 0) { success = true; // File just loaded, reset change tracking. _checksumItemList.ResetChanges(); } } return(success); }
/// <summary> /// Try to determine (checksum) filetype for given file. /// </summary> /// <param name="path">Full path to the file.</param> /// <returns>File's type if it could be determined.</returns> /// <exception cref="ArgumentNullException">Path was null.</exception> /// <exception cref="ArgumentException">Path was empty.</exception> /// <exception cref="FileNotfoundException"> /// Given file was not found. ///</exception> static public SumFileType FindFileType(string path) { if (path == null) { throw new ArgumentNullException(path); } if (path == String.Empty) { throw new ArgumentException("Path is empty", "path"); } FileInfo fi = new FileInfo(path); if (!fi.Exists) { throw new FileNotFoundException("Cannot find the file", path); } // First try checking for filename extension SumFileType fileType = SumFileType.Unknown; if (fi.Extension == ".md5") { fileType = SumFileType.MD5; } else if (fi.Extension == ".sfv") { fileType = SumFileType.SFV; } else if (fi.Extension == ".sha1") { fileType = SumFileType.SHA1; } // If we could not determine file type from filename extension, // try to find some hints from filename itself. if (fileType == SumFileType.Unknown) { string name = fi.Name; name = name.ToLower(); if (name.Contains("md5")) { fileType = SumFileType.MD5; } else if (name.Contains("sha1")) { fileType = SumFileType.SHA1; } else if (name.Contains("sfv") || name.Contains("crc")) { fileType = SumFileType.SFV; } } return(fileType); }
/// <summary> /// Convert sumfile type to sumtype. /// </summary> /// <param name="fileType">Filetype converted to sumtype</param> void SetSumTypeFromFileType(SumFileType fileType) { switch (fileType) { case SumFileType.MD5: _currentSumType = CheckSumType.MD5; break; case SumFileType.SFV: _currentSumType = CheckSumType.CRC32; break; case SumFileType.SHA1: _currentSumType = CheckSumType.SHA1; break; default: throw new NotImplementedException(); } }
public void CRC32File3() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/SFVFiles/file_sfv.txt"); Assert.AreEqual(SumFileType.SFV, ft); }
public void CRC32File1() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/SFVFiles/TestFile1.sfv"); Assert.AreEqual(SumFileType.SFV, ft); }
public void MD5File2() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/MD5Files/File_md5.txt"); Assert.AreEqual(SumFileType.MD5, ft); }
public void MD5File1() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/MD5Files/TestFile1.md5"); Assert.AreEqual(SumFileType.MD5, ft); }
public void ShaFile2() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/SHA1Files/file_sha1.txt"); Assert.AreEqual(SumFileType.SHA1, ft); }
public void ShaFile1() { SumFileType ft = SumFileUtils.FindFileType(@"../../TestData/SHA1Files/TestFile1.sha1"); Assert.AreEqual(SumFileType.SHA1, ft); }
public void FileNotFound() { // Expect user doen't have this file.. SumFileType ft = SumFileUtils.FindFileType(@"C:\unique.txt"); }
public void EmptyFileName() { SumFileType ft = SumFileUtils.FindFileType(String.Empty); }
public void NullFilename() { SumFileType ft = SumFileUtils.FindFileType(null); }
/// <summary> /// Convert sumfile type to sumtype. /// </summary> /// <param name="fileType">Filetype converted to sumtype</param> void SetSumTypeFromFileType(SumFileType fileType) { switch (fileType) { case SumFileType.MD5: SumType = CheckSumType.MD5; break; case SumFileType.SFV: SumType = CheckSumType.CRC32; break; case SumFileType.SHA1: SumType = CheckSumType.SHA1; break; default: throw new NotImplementedException(); } }
/// <summary> /// Load items from the file. /// </summary> /// <param name="path">Full path to the file to load.</param> /// <param name="fileType">Type of the file to load.</param> /// <returns></returns> public bool LoadFile(string path, SumFileType fileType) { bool success = false; SumFile newSumFile = new SumFile(); if (newSumFile != null) { SetSumTypeFromFileType(fileType); newSumFile.SetFileList(_checksumItemList); int items = 0; try { items = newSumFile.ReadFile(path, SumType); } catch (Exception) { } if (items > 0) { success = true; // File just loaded, reset change tracking. _checksumItemList.ResetChanges(); } } return success; }
/// <summary> /// Select correct sumtype into the sumtype combobox, based on loaded /// sumfile type. /// </summary> /// <param name="fileType">File type loaded.</param> private void SetSumTypeCombo(SumFileType fileType) { int ind; switch (fileType) { case SumFileType.MD5: ind = toolStripComboSumTypes.FindStringExact("MD5"); toolStripComboSumTypes.SelectedIndex = ind; break; case SumFileType.SFV: ind = toolStripComboSumTypes.FindStringExact("CRC32"); toolStripComboSumTypes.SelectedIndex = ind; break; case SumFileType.SHA1: ind = toolStripComboSumTypes.FindStringExact("SHA-1"); toolStripComboSumTypes.SelectedIndex = ind; break; default: throw new NotImplementedException("Unknown checksum file type"); } }