您可以使用 java 递归读取所有文件并排除不需要的文件并获取文件大小,但调用 du -h 更快,并且需要更少的代码。
//you will problably need to tune up a bit the du command
String[] cmd = {
"/bin/sh", "-c", "du -h /home/user/me/*.txt" };//to get all the txt files size in folder
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader bri = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = "";
while ((line = bri.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
更新
我已经对不同目录中的 mp3 文件进行了测试,只需不到一秒钟的时间,就有超过 6000 个文件存储在不同的文件夹中。
使用的命令:
"/bin/sh", "-c", "du -h -a /media/mp3 | grep .mp3"