Exemplo n.º 1
0
        /// <summary>
        /// Checks if file exists in the cache
        /// </summary>
        /// <param name="in_file_name"></param>
        /// <param name="in_file_length"></param>
        /// <param name="in_checksum"></param>
        static public bool IsFileExists(string in_file_name, UInt32 in_file_length, MD5Hash in_hash)
        {
            string cache_path = GetFileCachePath();
            string file_path  = Path.Combine(cache_path, in_file_name);

            // check if file is exists in the cache
            if (File.Exists(file_path))
            {
                // check file length
                FileInfo file_info = new FileInfo(file_path);
                if (file_info.Length != in_file_length)
                {
                    return(false);
                }

                // check MD5 checksum
                MD5Hash hash = new MD5Hash();
                hash.ComputeFileHash(file_path);
                if (hash.IsEqual(in_hash))
                {
                    return(true);
                }
            }

            return(false);
        }