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[ * ];
byte[] updatedBuffer = new byte[ * ];
int targetReadLength;
int updatedReadLength;
do
{
targetReadLength = targetStream.Read(targetBuffer, , targetBuffer.Length);
updatedReadLength = updatedStream.Read(updatedBuffer, , updatedBuffer.Length); if (targetReadLength != updatedReadLength)
{
return false;
} for (int i = ; i < targetReadLength; ++i)
{
if (targetBuffer[i] != updatedBuffer[i])
{
return false;
}
} } while ( < targetReadLength);
}
} return true;
} }
}
c#文件比较Code的更多相关文章
- 解决npm : 无法加载文件 D:\Code\renren-fast-vue\node_modules\.bin\npm.ps1,因为在......
解决这个问题: 看看错误信息: npm : 无法加载文件 D:\DevPath\nodejs\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https:/go.microsoft. ...
- 在visual studio code和visual studio中编写TypeScript文件自动生成JavaScript文件
注:此处的自动生成都为保存ts文件时自动生成js文件 VS CODE 只需要在TypeScript的终端控制台中输入如下命令即可,并注意需要将其中的*换成对应的文件名,此处的*似乎不能作为通用匹配. ...
- Visual Studio Code 配置指南
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...
- Inno Setup 如何读写文件
软件安装的实质就是拷贝,对于简单的打包当然不需要考虑修改某(配置)文件.通过inno修改文件的目的在于把安装时相关信息写入文件中,提供其它应用的读取,而这些信息也只能在安装时才能确定,比如安装用户选择 ...
- php课程---文件操作及文件上传的代码总结
php里面文件包含目录和文件两种 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
- PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程
1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存 ...
- java之文件夹
1.文件夹的创建 code: package com.test; import java.io.File; public class Folder_test { public static void ...
- 使用和制作patch文件
使用和制作patch文件 发表时间: 2007-2-13 20:57 作者: superuser 来源: 迷茫人 字体: 小 中 大 | 打印 原文http://www.linuxsir. ...
随机推荐
- MB_DOCUMENT_BADI调试(Update Debug)
Update Module函数,主要用语对话或报表中实现同步和异步更新数据库操作,需要单独调用函数实现更新数据库表,但又要求对程序的运行不产生影响(更新成功与否不影响主程序的正常执行) 几个操作,要么 ...
- shell脚本小集锦
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash 2) 如何在脚本中使 ...
- how2j学习日志——J2EE(2018年3月28日)
1. 开始跟着站长学习J2EE,首页是简单的Tomcat安装和部署,我从官网上下载的是7.0.85版本,修改server.xml中的默认端口号为80.80端口是web服务的默认端口,因此在浏览器上输入 ...
- centos7下的glusterfs的安装与使用
环境说明: 两台虚拟主机,IP分别为192.168.1.222和192.168.1.233,分别装上glusterfs. 一.下载glusterfs源码包 https://download.glust ...
- java传统web项目添加maven管理jar包,log4j无法正常输出日志
本文适合1年以上编程基础的开发人员阅读,非技术创新,可作为故障排除实录参考/收藏. 背景 笔者最近在给公司一个老的web项目改造升级,项目使用springmvc+mybatis,由于项目比较久远,没有 ...
- Oracle性能优化4-索引
Oracle优化可以分为通过改写sql优化和不改写sql优化不改写sql优化一般通过index来实现 在Oracle数据库中,索引按照索引机制的不同,可以分为三种. 1. B-Tree索引 B-Tre ...
- Error starting daemon: error initializing graphdriver: driver not supported
Error starting daemon: error initializing graphdriver: driver not supported systemctl stop docker rm ...
- Eclipse中logcat过滤器的使用
logcat里信息繁多,用过滤器可以方便快捷的找到我们要查找的信息. 我们可以在打开Eclipse之后,选择Window –> Show View ->Other菜单,然后在Android ...
- centos7.2下nginx安装教程
1.准备工作 1)关闭iptables 关闭操作 iptables -t nat -F 查看操作 iptables -t nat -L 2)关闭selinux 查看操作 setenforce 关闭操作 ...
- 解决loadrunner录制页面的乱码问题
以下亲自验证了的:好用. 三步解决loadrunner录制页面的乱码问题 第一步:去lr 的vugen的Tools -> Recoding Options -> Advanced ...