首页 新闻 会员 周边 捐助

请教C#自己取自身的文件MD5值

0
悬赏园豆:50 [待解决问题]

我想程序在运行的时候计算出自身程程序文件的MD5值,但百度了一圈都是对外部文件取MD5值的方法,有知道的高手贴下代码,,感谢!

空灵玄风的主页 空灵玄风 | 初学一级 | 园豆:6
提问于:2013-08-30 04:26
< >
分享
所有回答(4)
1

http://www.codeproject.com/Questions/602895/SelfplusMD5plusCheckplusWhenplusFormplusLoad

Yu | 园豆:12990 (专家六级) | 2013-08-30 08:33
1

把自身文件路径作为参数传递不就可以了吗?

幻天芒 | 园豆:37207 (高人七级) | 2013-08-30 09:36
private string GetFileMd5Code(string filePath)
        {
            StringBuilder builder = new StringBuilder();
            using(var md5=new MD5CryptoServiceProvider())
            {
                File.Copy(filePath,filePath+"e");//复制一份,防止占用
                using(FileStream fs=new FileStream(filePath+"e",FileMode.Open))
                {
                    byte[] bt=md5.ComputeHash(fs);
                     for (int i = 0; i < bt.Length; i++)
                     {
                         builder.Append(bt[i].ToString("x2"));
                    }
                }
                File.Delete(filePath+"e");//删除复制的文件,这里没处理异常等....
            }
            return builder.ToString();
        }

 

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-08-30 09:57
0

复制到临时文件夹中做hash,参考How do I get the hash of current .exe

dudu | 园豆:30778 (高人七级) | 2013-08-30 16:12
0

当前exe的fileStream吗?

试试这个:

var fileStream = Assembly.GetExecutingAssembly().GetFile("ConsoleApplication19.exe");

undefined | 园豆:898 (小虾三级) | 2013-09-17 17:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册