就这样获取文件的MD5和大小
2015-05-14 17:22
141 查看
纠结真蛋疼
判断一件事值不值得去做的唯一标准是这件事是不是令我
纠结。如果纠结了,就不去做了!但是,人总要活着,又能怎样。谁说男人就没有那么几天......
从极速妙传说起
在现在各大厂商都推出免费云盘的时代,貌似也只有我在当初花点钱还特兴奋的去买云盘空间。免费使得大家都是拿着好处后,然后不再特别在意去关注文件的隐私及安全问题了。“极速妙传”是不是对比他们所有服务器上的文件,呵呵,大家都心知肚明了吧。
好多人质疑为什么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; }
结尾
相关文章推荐
- 已签名apk文件获取签名文件的MD5,签名信息
- VC中获取文件大小
- c/c++获取文件大小的方法
- delphi 中获取文件大小
- Java利用MessageDigest获取字符串或文件MD5详解
- 从HTTP和FTP上获取单个文件的大小
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- VC C/C++ 4种方法获取文件大小 Windows API
- 获取文件的md5
- Qt 之 HTTP 请求 多线程分块下载——上(获取下载文件大小)
- C++获取文件大小常用技巧
- shell for 循环、查看文件大小、计算文件md5
- 一次获取数据库服务器所有数据文件的大小
- swift 获取文件大小
- CInternetFile怎么获取文件大小?!
- ASP快速获取远程文件大小的方法
- JS获取file上传文件路径,后缀,大小,文件名
- 获取文件大小的函数
- linux下C++读取文件,获取文件大小。
- android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位