C# Large Files MD5 C# 获取大文件MD5
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net.Mail;
- using System.Net;
- using System.Threading;
- using System.IO;
- using System.Security.Cryptography;
- namespace ConsoleApp348
- {
- class Program
- {
- static List<String> MD5List = new List<string>();
- static string logFullPath = Directory.GetCurrentDirectory() + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- static void Main(string[] args)
- {
- string dir = @"C:\Users\Fred\Downloads";
- GetFiles(dir);
- foreach(var md5 in MD5List)
- {
- Console.WriteLine(md5);
- }
- Console.ReadLine();
- }
- static void LogMessage(string msg)
- {
- lock(logFullPath)
- {
- using (StreamWriter logWriterStream = new StreamWriter(logFullPath, true, UTF8Encoding.UTF8))
- {
- logWriterStream.WriteLine($"Log message :{msg},now is {DateTime.Now.ToString("yyyyMMddHHmmssffff")}");
- }
- }
- }
- static void GetFiles(string dir)
- {
- string[] allFiles = Directory.GetFiles(dir, "*", SearchOption.TopDirectoryOnly);
- Console.WriteLine($"There are totally {allFiles.Length} files in {dir}");
- if (allFiles != null && allFiles.Any())
- {
- for (int i = ; i < allFiles.Length; i++)
- {
- GenerateMD5ForLargeFiles(allFiles[i]);
- }
- }
- }
- static void GenerateMD5ForLargeFiles(string fileName)
- {
- StringBuilder stringBuilder = new StringBuilder();
- using (Stream readStream = File.OpenRead(fileName))
- {
- using (MD5 bigFileMD5 = MD5.Create())
- {
- using (MD5CryptoServiceProvider cryptoServiceProvider = new MD5CryptoServiceProvider())
- {
- byte[] data = cryptoServiceProvider.ComputeHash(readStream);
- for (int i = ; i < data.Length; i++)
- {
- stringBuilder.Append(data[i].ToString("x2"));
- }
- }
- }
- }
- MD5List.Add(stringBuilder.ToString());
- LogMessage(stringBuilder.ToString());
- }
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net.Mail;
- using System.Net;
- using System.Threading;
- using System.IO;
- using System.Security.Cryptography;
- namespace ConsoleApp348
- {
- class Program
- {
- static List<String> MD5List = new List<string>();
- static void Main(string[] args)
- {
- string dir = @"C:\Users\Fred\Downloads";
- GetFiles(dir);
- if(MD5List.Any())
- {
- Parallel.ForEach(MD5List, x =>
- {
- Console.WriteLine(x);
- });
- }
- Console.ReadLine();
- }
- static void GetFiles(string dir)
- {
- string[] allFiles = Directory.GetFiles(dir, "*", SearchOption.TopDirectoryOnly);
- Console.WriteLine($"There are totally {allFiles.Length} files in {dir}");
- if(allFiles!=null && allFiles.Any())
- {
- for(int i=;i<allFiles.Length;i++)
- {
- GenerateMD5ForLargeFiles(allFiles[i]);
- }
- }
- }
- static void GenerateMD5ForLargeFiles(string fileName)
- {
- StringBuilder stringBuilder = new StringBuilder();
- using (Stream readStream = File.OpenRead(fileName))
- {
- using (MD5 bigFileMD5 = MD5.Create())
- {
- byte[] data = bigFileMD5.ComputeHash(readStream);
- for(int i=;i<data.Length;i++)
- {
- stringBuilder.Append(data[i].ToString("x2"));
- }
- }
- }
- MD5List.Add(stringBuilder.ToString());
- }
- }
static void GenerateMD5ForLargeFiles(string fileName)
{
StringBuilder stringBuilder = new StringBuilder();
using (Stream readStream = File.OpenRead(fileName))
{
using (MD5 bigFileMD5 = MD5.Create())
{
byte[] data = bigFileMD5.ComputeHash(readStream);
for(int i=0;i<data.Length;i++)
{
stringBuilder.Append(data[i].ToString("x2"));
}
}
}
MD5List.Add(stringBuilder.ToString());
}
[ComVisible(true)]
public sealed class MD5CryptoServiceProvider : MD5
Computes the System.Security.Cryptography.MD5 hash value for the input data using
// the implementation provided by the cryptographic service provider (CSP). This
// class cannot be inherited.
C# Large Files MD5 C# 获取大文件MD5的更多相关文章
- Java计算文件MD5值(支持大文件)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.securit ...
- 如何用python最快的获取大文件的最后几行
工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断.那么,这种情况下我们应该怎么做呢? 1)常规方法:从前往后依次读取 步骤:open打开日志文件. ...
- 转 这种方法可以免去自己计算大文件md5 的麻烦
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using ...
- 基于js-spark-md5前端js类库,快速获取文件Md5值
js-spark-md5是歪果仁开发的东西,有点多,但是我们只要一个js文件即可,具体类包我存在自己的oschina上,下载地址:https://git.oschina.net/jianqingwan ...
- Vue.js实现大文件分片md5断点续传
背景 根据部门的业务需求,需要在网络状态不良的情况下上传很大的文件(1G+).其中会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长,请求超时:3,传输中断,必须重新上传导致前功尽 ...
- ios获取文件MD5值
一般我们在使用http或者socket上传或者下载文件的时候,经常会在完成之后经行一次MD5值得校验(尤其是在断点续传的时候用的更 多),校验MD5值是为了防止在传输的过程当中丢包或者数据包被篡改,在 ...
- php解决大文件断点续传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- php使用WebUploader做大文件的分块和断点续传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- B/S架构大文件上传问题
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
随机推荐
- WPF/.net core WPF 系统托盘支持
WPF 原生不支持系统托盘图标,需要依靠其它方式处理. 1 使用 WinForm 的支持 WPF最小到系统托盘 - Arvin.Mei - 博客园 2 使用 wpf-notifyicon 库 hard ...
- SpringMVC详解------参数绑定
SpringMVC详解------参数绑定 转载于:https://blog.csdn.net/swebin/article/details/92795422 目录 1.SpringMVC 参数绑定 ...
- npm ERR! code Z_BUF_ERROR
最新学习egg,在npm install egg --save 步骤中总是报错如下: npm ERR! code Z_BUF_ERROR npm ERR! errno -5 npm ERR! zlib ...
- 表单_HTML
HTML表单_输入元素 大多数情况被用到的表单标签是输入标签 输入类型是由类型属性(type)定义的. 表单中的单选按钮可以设置以下几个属性:value.name.checked value:提交数据 ...
- 顺F速运国际版,你的密码漏点了
- 加密情况分析 对APP的分析过程,当然首先是安装,使用,抓包啦. 同样地,登录,抓包看看. 使用账号密码登录. - 壳呢? 虽然直接解密了顺F国际版的加密数据,但还是有必要看看它的APK. 经过分 ...
- Android 布局测试
wrap_content <Button android:id="@+id/button1" android:layout_width="wrap_content& ...
- Xcode修改工程文件名字
http://stackoverflow.com/questions/8262613/renaming-xcode-4-project-and-the-actual-folder
- [视频教程] 使用composer安装使用thinkphp6.0框架
安装composer -vvv的参数是表示展示安装进度,测试时使用其他参数安装失败,一直卡着不动curl -vvv https://getcomposer.org/installer | phpmv ...
- 1、mongoDB服务器的搭建与连接
下载----编译----安装之后: 1.首先,创建一个mongodb_simple的目录,进入到目录中. 2.创建文件夹:data,用来存储数据库的数据文件. 3.创建文件夹:log,用来存储数据库的 ...
- CodeForces - 573A (简单数论+模拟)
题意 https://vjudge.net/problem/CodeForces-573A 有n个数ai ,你可以把每个数任意次×2 或×3 ,问能否最终使得每个数相等. 思路 x2和x3只能改变数 ...