代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
比较两个文件目录中的文件是否相同
作者:
dezai
/ 发布于
2014/5/22
/
471
比较两个文件目录中的文件是否相同
private void button1_Click(object sender, EventArgs e) { string strInfo = string.Empty; string emptyFile = string.Empty; richTextBox1.Text = ""; richTextBox2.Text = ""; if (string.IsNullOrEmpty(txtFile1.Text.Trim()) || string.IsNullOrEmpty(txtFile2.Text.Trim())) { MessageBox.Show("文件夹路径不能为空。"); } else { CompareDirs(txtFile1.Text.Trim(), txtFile2.Text.Trim(), out strInfo,out emptyFile); if (!string.IsNullOrEmpty(strInfo)) { richTextBox1.Text = "不相同的文件有:\n" + strInfo + "\n\n\n."; } else { if (!string.IsNullOrEmpty(emptyFile)) { richTextBox2.Text = "文件:“" + emptyFile + "”在文件夹“" + txtFile2.Text + "”中不存在"; } else { MessageBox.Show("两文件夹内容完全相同。"); } } } } /// /// 比较两个文件内容是否完全相同 /// /// file1的绝对路径 /// file2的绝对路径 /// private bool CompareFile(string file1, string file2) { if (file1.Equals(file2)) { return true; } int file1Byte = 0; int file2Byte = 0; try { using (FileStream fs1 = new FileStream(file1, FileMode.Open), fs2 = new FileStream(file2, FileMode.Open)) { if (fs1.Length != fs2.Length) { return false; } do { file1Byte = fs1.ReadByte(); file2Byte = fs2.ReadByte(); } while ((file1Byte == file2Byte) && (file1Byte != -1)); } return (file1Byte - file2Byte == 0); } catch { return false; } } /// /// 比较两个目录中的文件是否相同, /// /// /// /// 不相同的文件名存放到strInfo中 /// path1中的文件在path2中不存在时文件名保存到emptyFile中 private void CompareDirs(string path1, string path2, out string strInfo, out string emptyFile) { emptyFile = string.Empty; strInfo = string.Empty; bool tag = false; try { DirectoryInfo dir1 = new DirectoryInfo(path1); DirectoryInfo dir2 = new DirectoryInfo(path2); FileInfo[] fileInfo1 = dir1.GetFiles(); FileInfo[] fileInfo2 = dir2.GetFiles(); foreach (FileInfo file1 in fileInfo1) { foreach (FileInfo file2 in fileInfo2) { if (file1.Name.Equals(file2.Name,StringComparison.OrdinalIgnoreCase)) { tag = true; if (!CompareFile(file1.FullName, file2.FullName)) strInfo += file1.Name + "\n"; break; } } if (!tag) { emptyFile += file1.Name + "\n"; } tag = false; } } catch { } } private void button2_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { txtFile1.Text = folderBrowserDialog1.SelectedPath; } } private void button3_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { txtFile2.Text = folderBrowserDialog1.SelectedPath; } } private void txtFile1_DragDrop(object sender, DragEventArgs e) { txtFile1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); } private void txtFile2_DragDrop(object sender, DragEventArgs e) { txtFile2.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); } private void txtFile1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void txtFile2_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void Form1_Load(object sender, EventArgs e) { txtFile1.AllowDrop = true; txtFile2.AllowDrop = true; richTextBox1.ReadOnly = true; }
试试其它关键字
比较文件
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dezai
贡献的其它代码
(
1065
)
.
双色球
.
列出所有物理网络适配器
.
快乐数的 Python 实现
.
计算当月还剩天数
.
猜属相
.
二十四小时时钟
.
每日一语
.
很酷的日历
.
超长日历表单
.
最简单的时钟
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3