zoukankan      html  css  js  c++  java
  • c#文件比较Code

      我想我们很多时候想比较一个文件里面是否有改动,比如一个dll库是新加了一个方法或修改了其中的方法实现,不能通过可视化的工具来比较的时候,可以用这个小工具来比较, 以下是比较文件的代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    namespace FilesCompare
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Please type the first file.");
                string firstFilePath = Console.ReadLine();
    
                Console.WriteLine("Please type the second file.");
                string secondFilePath = Console.ReadLine();
    
                bool isEqual = CompareFiles(firstFilePath, secondFilePath);
                Console.WriteLine(isEqual ? "equal" : " Not equal");
    
                Console.Read();
            }
    
            public static bool CompareFiles(string targetFile, string updatedFile)
            {
                FileInfo targetFileInfo = new FileInfo(targetFile);
                FileInfo updatedFileInfo = new FileInfo(updatedFile);
    
                if (targetFileInfo.Length != updatedFileInfo.Length)
                {
                    return false;
                }
    
                using (FileStream targetStream = File.OpenRead(targetFile))
                {
                    using (FileStream updatedStream = File.OpenRead(updatedFile))
                    {
                        if (targetStream.Length != updatedStream.Length)
                        {
                            return false;
                        }
    
                        // Using a larger buffer than the default buffer of 4 * 1024 used by FileStream.ReadByte improves performance.
                        // The buffer size is based on user feedback. Based on performance results, a better buffer size may be determined.
                        byte[] targetBuffer = new byte[16 * 1024];
                        byte[] updatedBuffer = new byte[16 * 1024];
                        int targetReadLength;
                        int updatedReadLength;
                        do
                        {
                            targetReadLength = targetStream.Read(targetBuffer, 0, targetBuffer.Length);
                            updatedReadLength = updatedStream.Read(updatedBuffer, 0, updatedBuffer.Length);
    
                            if (targetReadLength != updatedReadLength)
                            {
                                return false;
                            }
    
                            for (int i = 0; i < targetReadLength; ++i)
                            {
                                if (targetBuffer[i] != updatedBuffer[i])
                                {
                                    return false;
                                }
                            }
    
                        } while (0 < targetReadLength);
                    }
                }
    
                return true;
            }
    
        }
    }
  • 相关阅读:
    JVM参数配置
    域渗透命令
    相对路径绝对路径
    ESPCMS的CSRF添加管理员账号
    nmap脚本nse的使用
    Nmap简单的漏扫
    MS08-067
    lcx用法
    给自己的服务器传文件 转自别人
    突破大文件上传 和内网ip的端口转发
  • 原文地址:https://www.cnblogs.com/cang/p/4145239.html
Copyright © 2011-2022 走看看