今天我写了一个工具类,主要功能是计算所有资源文件的MD5,检查重复资源(MD5相同表示文件相同)
这个MD5是什么,读者可以自行百度,其实简略的讲就是验证文件是否被篡改。
什么意思,比如当你去 站下载游戏的客户端软件,当有些黑客喜欢搞出点不好的事情,在你的客户端加些恶意代码之类的。
当黑客改了客户端文件,随之这个文件的MD5也改变了。所以我们只要验证用户下载的客户端的MD5和 站提供的MD5码是否一致,来判断是否要下载。
总之这个MD5是非常有用的,c#也自带MD5库。接下来先看代码吧,代码很简洁明了。
接下来进行代码解析:
1.首先检索出所有的非文件夹资源的路径(路径大家根据需要自己改)
string[] assetsPath = Directory.GetFiles(“Assets/”,”*.*”,SearchOption.AllDirectories);
2.接下来进行资源遍历,首先要过滤掉meta文件,每个资源只要是在untiy工程中,都会有一个对应的meta文件,我们 是不需要计算他们的MD5码的。然后计算每个资源路径的MD码,在这里Debug.Log(1)可以注释,我是为了看一下我检索了多少个资源。
3.最后一步,用了一个比较省时的资源查重方法,巧妙的借用了字典,创建了一个字典,键为MD5码,值为资源路径。然后我们只需要判断一下这个资源的MD5码是否存在,如果不存在说明没有重复资源,添加到字典中。如果存在说明是重复资源文件,就把这两个资源的具体路径打印到控制台,方便我们删除修改重复资源文件,全程只用了一个循环就搞定了所有工作,就这么简单!下面附上效果图。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!