安卓获取文件MD5值

安卓获取文件MD5值,第1张

public static String getFileMD5(File file) {

        if (!file.isFile()) {

            return null

        }

        MessageDigest digest = null

        FileInputStream in = null

        byte buffer[] = new byte[1024]

        int len

        try {

            digest = MessageDigest.getInstance("MD5")

            in = new FileInputStream(file)

            while ((len = in.read(buffer, 0, 1024)) != -1) {

                digest.update(buffer, 0, len)

            }

            in.close()

        } catch (Exception e) {

            e.printStackTrace()

            return null

        }

        BigInteger bigInt = new BigInteger(1, digest.digest())

        return bigInt.toString(16)

    }

package my.bag

import java.io.File

import java.io.FileInputStream

import java.math.BigInteger

import java.security.MessageDigest

import java.util.HashMap

import java.util.Map

import android.app.Activity

import android.os.Bundle

import android.util.Log

public class FileDigest extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState)

File file = new File("/mnt/sdcard/123.txt")

Log.e("MD5", getFileMD5(file))

}

public static String getFileMD5(File file) {

if (!file.isFile()) {

return null

}

MessageDigest digest = null

FileInputStream in = null

byte buffer[] = new byte[1024]

int len

try {

digest = MessageDigest.getInstance("MD5")

in = new FileInputStream(file)

while ((len = in.read(buffer, 0, 1024)) != -1) {

digest.update(buffer, 0, len)

}

in.close()

} catch (Exception e) {

e.printStackTrace()

return null

}

BigInteger bigInt = new BigInteger(1, digest.digest())

return bigInt.toString(16)

}

public static Map getDirMD5(File file, boolean listChild) {

if (!file.isDirectory()) {

return null

}

Map map = new HashMap()

String md5

File files[] = file.listFiles()

for (int i = 0i <files.lengthi++) {

File f = files[i]

if (f.isDirectory() &&listChild) {

map.putAll(getDirMD5(f, listChild))

} else {

md5 = getFileMD5(f)

if (md5 != null) {

map.put(f.getPath(), md5)

}

}

}

return map

}

}

最后不要忘了在manifest中添加权限


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11716579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存