就这样获取文件的MD5和大小
纠结真蛋疼
判断一件事值不值得去做的唯一标准是这件事是不是令我
纠结
。如果纠结了,就不去做了!但是,人总要活着,又能怎样。谁说男人就没有那么几天......
从极速妙传说起
在现在各大厂商都推出免费云盘的时代,貌似也只有我在当初花点钱还特兴奋的去买云盘空间。免费使得大家都是拿着好处后,然后不再特别在意去关注文件的隐私及安全问题了。“极速妙传”是不是对比他们所有服务器上的文件,呵呵,大家都心知肚明了吧。
好多人质疑为什么U盘、硬盘、内存的真实容量都比标榜的少?其实是1024啦。不多说了,现在,如果去做个类似 云盘 的东东,这不可能吧!
硬生生的干货
下面代码主要是获取文件后,读取成文件流,得到文件的字节、大小、内容等所有信息。That's All.
public string GetMD5Hash(string path)
{
MD5 md5Hasher = MD5.Create();
byte[] data;
try
{
if (IsRemoteUrl(path))
{
var request = System.Net.FileWebRequest.Create(path);
var size = request.GetResponse().ContentLength;
var fs = request.GetResponse().GetResponseStream();
data = md5Hasher.ComputeHash(fs);
}
else
{
var fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
data = md5Hasher.ComputeHash(fs);
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
//throw; //ToDO Something...
return null;
}
}
public string GetFileSize(string path)
{
decimal length;
try
{
if (IsRemoteUrl(path))
{
var request = System.Net.FileWebRequest.Create("path");
length = request.GetResponse().ContentLength;
}
else
{
var fileInfo = new System.IO.FileInfo(path);
length = fileInfo.Length;
}
string[] size = { "B", "KB", "MB", "GB" };
int order = 0;
while (length >= 1024 && order + 1 < size.Length)
{
order++;
length = length / 1024;
}
var fileSize = string.Format("{0:0.##} {1}", length, size[order]);
return fileSize;
}
catch (Exception)
{
//throw; //ToDO Something...
return null;
}
}
public bool IsRemoteUrl(string url)
{
if (string.IsNullOrEmpty(url))
return false;
if (!url.Contains("http://"))
return false;
if (url.Substring(0, 7) == "http://")
return true;
return false;
}
结尾
代码就这样,写的比较烂,加入了判断是不是远程Url地址,看不懂想打我看这里。
就这样获取文件的MD5和大小的更多相关文章
- JAVA 获取文件的MD5值大小以及常见的工具类
/** * 获取文件的MD5值大小 * * @param file * 文件对象 * @return */ public static String getMD5(File file) { FileI ...
- swift 获取文件的Md5值
获取文件的Md5值的方法如下 func md5File(url: URL) -> String? { let bufferSize = 1024 * 1024 do { //打开文件 let f ...
- iOS开发之获取文件的md5值
我们经常有下载文件上的需求 为了安全我们经常需要对文件进行md5校验 那我就来给大家分享一个很方便的获取文件md5值得方法. 首先需要引用系统库文件 #include <CommonCrypto ...
- C#获取文件的MD5码
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Send ...
- 获取文件的MD5码(C#)
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Test ...
- Jav获取文件的MD5码,比较两个文件内容是否相同
Jav获取文件的MD5码,比较两个文件内容是否相同 代码: System.out.println(DigestUtils.md5Hex(new FileInputStream(new File(&qu ...
- 在浏览器端获取文件的MD5值
前几天接到一个奇怪的需求,要在web页面中计算文件的md5值,还好这个项目是只需兼容现代浏览器的,不然要坑死了. 其实对文件进行md5,对于后端来说是及其简单的.比如使用Node.js,只要下面几行代 ...
- Windows下获取文件的md5码的方法
1.certutil 命令简介 本来想找一个工具 算一个文件的md5 或者是sha 值来着. 找到一个说法是 可以使用 windows 自带的命令行来处理 具体命令 certutil -hashfil ...
- Android获取文件的MD5值
package my.bag; import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; im ...
随机推荐
- exam help
http://forceprepare.com/ http://forcecertified.com/certifications/certified-developer/ http://blog.l ...
- 【C++沉思录】句柄1
1.在[C++沉思录]代理类中,使用了代理类,存在问题: a.代理复制,每次创建一个副本,这个开销有可能很大 b.有些对象不能轻易创建副本,比如文件2.怎么解决这个问题? 使用引用计数句柄,对动态资源 ...
- 初探单点登录 SSO
单点登录 单点登录(Single sign-on,SSO)是一种访问控制,在多个软件应用中,用户只需登录其中一个应用,就可以成功访问其他应用:同样,用户只需注销其中一个应用,就可以成功注销其他应用. ...
- 旧文—冬日感怀
冬日感怀 下雪了,虽不大,可那雪花落在手上,融在心里,便泛起淡淡的温柔,因为这是冬日的馈赠啊,是上苍的礼物,是往昔记忆的灰烬化作天地间的精灵装点纷繁琐碎的世界.于是,透过汽车上雾气氤氲的玻璃窗,人 ...
- EclEmma的介绍、安装与使用
p{line-height: 200%} 1. EclEmma的介绍 EclEmma是一个开源的软件测试工具,可以在编码过程中查看代码调用情况.也可以检测单覆盖率. 2. Eclipse下 ...
- asp.net首页设置
在web.config中设置首页 <configuration> <system.web> <compilation debug="true" tar ...
- RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms
做一下记录顺便帮助一下遇到问题的朋友. 做RDLC报表在WinForm运行,在VS里面调试引用了“Microsoft.ReportViewer.Common.dll”和“Microsoft.Repor ...
- 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)
译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...
- [转]javascript的urlencode
今天在一个原来使用AJAX自动缩小选择内容的项目上突然发现当输入名称时,如果输入有特殊字符&的时候,选择的内容不会发生变化,也就是说输入的内容在&后面的内容会被截断,经过查证才发现在客 ...
- Android UI开发第四十篇——ScrollTricks介绍
ScrollTricks是一个开源控件,实现了两个简单功能: 1.Quick Return:向上滑动时,View也向上滑动并且消失,当向下滑动时,View马上出现.例如Google Now的搜索功能. ...