比较文件内容是否一致

 /// <summary>
        /// 比较是否相同文件
        /// </summary>
        /// <param name="fileValidator">原文件路径</param>
        /// <param name="fileToCompare">要比较文件路径</param>
        /// <returns>是否相同</returns>
        public static bool FileCompare( string fileValidator, string fileToCompare )
        {
            //  判断文件路径是不是一样。
            if(fileValidator == fileToCompare)
            {return true;}
            int file1byte = 0;
            int file2byte = 0;
            //开始文件流比较
            try
            {
                using(FileStream fs1 = new FileStream(fileValidator,FileMode.Open),fs2 = new FileStream(fileToCompare,FileMode.Open))
                {
                    //  首先检查文件大小。如果两个文件的大小不相同,则肯定是不相同的文件。
                    if(fs1.Length != fs2.Length)
                    {
                        // 关闭文件。
                        fs1.Close();
                        fs2.Close();
                        return false;
                    }
                    //  逐一比较两个文件的每一个字节,直到发现不相符或已到达文件尾端为止。
                    do
                    {
                        //从每一个文件读取一个字节。
                        file1byte = fs1.ReadByte();
                        file2byte = fs2.ReadByte();
                    }while ((file1byte == file2byte) && (file1byte != -1));
                    // 关闭文件。
                    fs1.Close();
                    fs2.Close();
                }
                //  返回比较的结果。在这个时候,只有当两个文件的内容完全相同时,"file1byte" 才会等于 "file2byte"。
                return ((file1byte - file2byte) == 0);
            }
            catch( FileNotFoundException ex)
            {
                throw ex;
            }
        }

posted on 2007-05-16 09:08  雾里寻踪  阅读(981)  评论(0编辑  收藏  举报