using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System;
using System.Text;

public class Md5 : Editor
{
[MenuItem("Md5/Generate Md5")]
public static void Generate_Md5()
{
//创建一个controller
//AnimatorController mAnimatorController = AnimatorController.CreateAnimatorControllerAtPath("Assets/Resources/Animator/ani.controller");
//EditorUtility.DisplayDialog("Select Texture", "You must select a texture first!", "OK");
string path = EditorUtility.OpenFolderPanel("Choose Directory Path Plz!!!","","");
RecursiveDirectory(path);
}
static void RecursiveDirectory(string path)
{
if (Directory.Exists(path))
{
DirectoryInfo dInfo = new DirectoryInfo(path);
FileInfo[] files = dInfo.GetFiles("*", SearchOption.AllDirectories);
Debug.Log("RecursiveDirectory file length " + files.Length);
for (int i = 0; i < files.Length; ++i)
{
if (files[i].Name.EndsWith(".meta"))
continue;
Debug.Log("RecursiveDirectory Files Name " + files[i].Name + " Md5: "+ GetMd5(files[i].FullName));
}
}
}
static string GetMd5(string path)
{
try
{
FileStream fs = new FileStream(path, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(fs);
fs.Close();
System.Text.StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; ++i)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
throw new Exception("GetMd5 Exception error: " + ex.Message);
}
}
}

转 这种方法可以免去自己计算大文件md5 的麻烦的更多相关文章

  1. Python:高效计算大文件中的最长行的长度

    在操作某个很多进程都要频繁用到的大文件的时候,应该尽早释放文件资源(f.close()) 前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生 ...

  2. day08 学习小测试 九九乘法表 车牌划分计算 大文件读取操作

    1.1需求:读取一个100G的文件,检测文件中是否有关键字keys=['苍老师','小泽老师',"alex"], 如果有则替换成"***",并写入到另一个文件中 ...

  3. C# Large Files MD5 C# 获取大文件MD5

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. bat计算指定文件MD5并输出txt

    @echo off set Name1=*.ADS set Name2=GM_RSSPI* set Name3=equipment* set Name4=protocols* REM 设置输出文件名 ...

  5. Python 大文件处理

    非内存资源可以使用with 在python中逐行读取大文件 在我们日常工作中,难免会有处理日志文件的时候,当文件小的时候,基本不用当心什么,直接用file.read()或readlines()就可以了 ...

  6. php解决大文件断点续传

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  7. php使用WebUploader做大文件的分块和断点续传

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  8. B/S架构大文件上传问题

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  9. JSP大文件分片上传

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

随机推荐

  1. multiple definition of qt_plugin_query_metadata

    dustije 5 years ago I have a project with several plugins i want to compile into one library. I get ...

  2. Matlab基础部分1

  3. tcpdump 命令

    tcpdump命令高级网络 tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析. 选项 -a:尝试将网络和广播 ...

  4. [转载]decode()函数简介

    今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...

  5. hibernate文档头的不同版本

    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "h ...

  6. MSVCR120.dll 解决

    https://www.microsoft.com/en-us/download/details.aspx?id=40784 装之 from : https://answers.microsoft.c ...

  7. Prometheus监控学习笔记之PromQL简单示例

    0x00 简单的时间序列选择 返回度量指标 http_requests_total 的所有时间序列样本数据: http_requests_total 返回度量指标名称为 http_requests_t ...

  8. P3302 [SDOI2013]森林(主席树+启发式合并)

    P3302 [SDOI2013]森林 主席树+启发式合并 (我以前的主席树板子是错的.......坑了我老久TAT) 第k小问题显然是主席树. 我们对每个点维护一棵包含其子树所有节点的主席树 询问(x ...

  9. Linear Regression with PyTorch

    Linear Regression with PyTorch Problem Description 初始化一组数据 \((x,y)\),使其满足这样的线性关系 \(y = w x + b\) .然后 ...

  10. opencv学习之路(10)、ROI与mask掩码

    一.ROI #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat img=imread("E://0 ...