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架构大文件上传问题
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
随机推荐
- 运行时报:尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
运行环境为: Windows Server2012 Oracle11g 32位数据库+客户端 IIS发布后提示错误信息: “尝试加载 Oracle 客户端库时引发 BadImageFormatExc ...
- Python读写Excel文件的实例
最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理.首先贴出网上找来的读写Excel的脚本. 1.读取Excel(需要安装xlrd) ...
- python登陆代码简单逻辑
孩子:妈妈,我想要一个登陆的接口 妈妈:写,现在写,写1个够吗? 孩子:够了,妈妈真好,谢谢妈妈. 需求写一个简单的登陆逻辑: 1.定义一个账号和密码 2.输入账号和密码,密码要求密文 3.输入正确提 ...
- 双十一DIY装机记
一.装机背景 最近发现古董笔记本太卡了,用了近6年,尽管自己不打游戏,但是业余时间写写代码,同时开两个编辑器,打开个大一点的软件都卡的不行,据说更换固态硬盘可以提高速度,于是乎,京东买了一个500 ...
- 微信小程序上拉加载——分页
wxml: <view class="page"> <scroll-view class="imageViewCss_1" scroll-y= ...
- docker系列(三):docker容器
1 引言 在前面博文中,我们介绍了镜像.如果说镜像犹如面向对象中的类,本节要说的容器就是由类实例化出来的对象了,有了类才可以创建容器. 先从拉取一个官方提供的ubuntu最新镜像: $ docker ...
- sleep() 和 wait() 有什么区别:
①原理不同. sleep()方法是Thread类的静态方法,是线程用来控制自身流程的,它会使此线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动苏醒.而wait() ...
- CodeForces - 1248D1 (思维+暴力)
题意 有一个括号序列,你可以选择两个位置i,j(i可以等于j),进行交换.使得最后的循环位置(i的数目)最大. 循环位置:i(0<=i<len),将前i个字符移到最后,得到的新序列是合法的 ...
- SQL必知必会|SQL基础篇
了解SQL DBMS的前世今生 SQL是如何执行的 DDL语法 关于外键的性能问题? 是否使用外键确实会有一些争议.关于外键的使用: 首先,外键本身是为了实现强一致性,所以如果需要正确性>性能的 ...
- [C14] 总结(Conclusion)
总结(Conclusion) 总结和致谢(Summary and Thank You) 欢迎来到<机器学习>课的最后一段视频.我们已经一起学习很长一段时间了.在最后这段视频中,我想快速地回 ...