Exemple #1
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #10
0
 public void FileNotFound()
 {
     // Expect user doen't have this file..
     SumFileType ft = SumFileUtils.FindFileType(@"C:\unique.txt");
 }
Exemple #11
0
 public void EmptyFileName()
 {
     SumFileType ft = SumFileUtils.FindFileType(String.Empty);
 }
Exemple #12
0
 public void NullFilename()
 {
     SumFileType ft = SumFileUtils.FindFileType(null);
 }
Exemple #13
0
 /// <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();
     }
 }
Exemple #14
0
        /// <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;
        }
Exemple #15
0
        /// <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");
            }
        }