C#统计目录中文件MD5值
1. [代码]统计目录中文件MD5值
using System.IO;
using System.Security.Cryptography;
using System.Collections;
using System.Windows.Forms;
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
string filepath=(string)iData.GetData(DataFormats.Text);
StringBuilder sbMD5= new StringBuilder(1024);
string filepath=@"C:\tmp";
DirectoryInfo dir = new DirectoryInfo((filepath.LastIndexOf(Path.DirectorySeparatorChar) == filepath.Length - 1) ? filepath : filepath + Path.DirectorySeparatorChar);
FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
while (Folders.Count > 0)
{
FileSystemInfo atom = Folders.Dequeue();
FileInfo f = atom as FileInfo;
if (f == null)
{
DirectoryInfo d = atom as DirectoryInfo;
foreach (FileSystemInfo fi in d.GetFileSystemInfos())
Folders.Enqueue(fi);
}
else
{
FileStream fs = new FileStream(f.FullName,FileMode.Open,FileAccess.Read);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte [] md5byte = md5.ComputeHash(fs);
int i,j;
StringBuilder sb = new StringBuilder(16);
foreach (byte b in md5byte)
{
i = Convert.ToInt32(b);
j = i >> 4;
sb.Append(Convert.ToString(j,16));
j = ((i << 4) & 0x00ff) >> 4;
sb.Append(Convert.ToString(j,16));
}
sbMD5.Append(f.FullName);
sbMD5.Append("\t");
sbMD5.Append(sb.ToString());
sbMD5.Append("\r\n");
}
}
Clipboard.SetText(sbMD5.ToString());
}
else
MessageBox.Show("目前剪贴板中数据不可转换为文本","错误");
2. [代码][C#]代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Security.Cryptography;
using System.Collections;
using System.Windows.Forms;
http://www.huiyi8.com/gongzuozongjie/
static void listFiles(string rootDirectory,string searchPattern)
{工作总结
var files=from fileName in Directory.GetFiles(
rootDirectory,searchPattern)
select new
{
Name=fileName,
LastWriteTime=File.GetLastWriteTime(fileName)
};
StringBuilder sbMD5= new StringBuilder(1024);
foreach(var file in files)
{
FileStream fs = new FileStream(file.Name,FileMode.Open,FileAccess.Read);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte [] md5byte = md5.ComputeHash(fs);
StringBuilder sb = new StringBuilder(16);
foreach (byte b in md5byte)
{
int i = Convert.ToInt32(b);
int j = i >> 4;
sb.Append(Convert.ToString(j,16));
j = ((i << 4) & 0x00ff) >> 4;
sb.Append(Convert.ToString(j,16));
}
sbMD5.Append(f.Name);
sbMD5.Append("\t");
sbMD5.Append(f.LastWriteTime);
sbMD5.Append("\t");
sbMD5.Append(sb.ToString());
sbMD5.Append("\r\n");
}
Clipboard.SetText(sbMD5.ToString());
}
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
string filepath=(string)iData.GetData(DataFormats.Text);
listFiles(filepath,"*");
}
C#统计目录中文件MD5值的更多相关文章
- PHP中统计目录中文件以及目录中目录的大小
<?php #循环遍历目录中所有的文件,并统计目录和文件的大小 $dirName="phpMyAdmin"; $dir=opendir($dirName); #返回一 ...
- PHP统计目录中文件个数和文件大小
<meta charset="utf-8"><?php $dirn = 0; //目录数 $filen = 0; //文件数 //用来统计一个目录下的文件和目录的 ...
- 遍历目录删除指定MD5值的文件
工作需要实现一个查找出指定目录下md5值与excel表格中md5值相同的文件然后删掉的功能.我是这样做的:首先遍历指定目录,计算该目录下所有文件的md5值,以文件路径为key,md5值为value保存 ...
- 在Windows下通过命令行或者.bat文件统计一个目录中文件数量
在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- java统计指定目录中文件的个数和总的大小
转: 统计指定目录中文件的个数和总的大小 package file; import java.io.File; import java.util.ArrayList; public class Fil ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- Linux中文件MD5校验
md5sum命令用于生成文件的md5数字摘要,并可以验证文件内容是否发生了改变,间接地还可以检验两个文件内容是否完全相同.因为md5sum是读取文件内容来计算校验码的,因此只能验证文件内容,而无法验证 ...
- 获取文件MD5值(JS、JAVA)
文章HTML代码翻译于地址:https://www.cnblogs.com/linyihai/p/7040786.html 文件MD5有啥用? 文 ...
随机推荐
- 堆排序算法的java实现
堆积排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素.堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O ...
- 解密SVM系列(二):SVM的理论基础(转载)
解密SVM系列(二):SVM的理论基础 原文博主讲解地太好了 收藏下 解密SVM系列(三):SMO算法原理与实战求解 支持向量机通俗导论(理解SVM的三层境界) 上节我们探讨了关于拉格朗日乘 ...
- ubuntu安装源
1.编辑sources.list文件 sudo vi /etc/apt/sources.list 添加以下安装源 #台湾源 deb http://tw.archive.ubuntu.com/ubunt ...
- 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
导语:API Gateway是实现微服务重要的组件之一.面对诸多的开源API Gateway,如何进行选择也是架构师需要关注的焦点.本文作者对几个较大的开源API Gateway进行了压力测试,对 ...
- php 模拟get和post提交方法[解决ajax跨域问题]
get: $url = "http://www.111cn.net /index.php?a=b&c=d&e=f&g=" . urlencode('王璐个人 ...
- PYTHON流向下载
#-*- coding:utf-8 -*- import gzip import re import http.cookiejar import urllib.request import urlli ...
- Openstack(Kilo)安装系列之环境准备(一)
本文采用VMware虚拟环境,使用CentOS 7.1作为openstack的基础环境. 一.基础平台 1.一台装有VMware的windows系统(可联网) 2.CentOS 7.1 64bit镜像 ...
- 打造自己的LINQ Provider(上):Expression Tree揭秘
概述 在.NET Framework 3.5中提供了LINQ 支持后,LINQ就以其强大而优雅的编程方式赢得了开发人员的喜爱,而各种LINQ Provider更是满天飞,如LINQ to NHiber ...
- @media screen 针对不同移动设备——响应式设计
概念: device-pixel-ratio:定义输入设备屏幕的可视宽度与可见高度比率. device-width:输入设备屏幕的可视宽度. orientation :屏幕横竖屏定向.landscap ...
- 如何在iOS中使用libxml
本文转载至 http://blog.csdn.net/cloudhsu/article/details/8087628 1. 选择xcode工程设定 2. 选择target 3. 选择Summary ...