如何查找linux box上的文件大小并在JavaWebApp中显示
我有一个web应用程序,它显示一组指向文档的链接。这些文档放在我的linux机器上 现在我想在一个列中显示每个文件的大小 我现在想的解决方案是: 在谷歌搜索之后,我注意到如何查找linux box上的文件大小并在JavaWebApp中显示,java,linux,jakarta-ee,document,Java,Linux,Jakarta Ee,Document,我有一个web应用程序,它显示一组指向文档的链接。这些文档放在我的linux机器上 现在我想在一个列中显示每个文件的大小 我现在想的解决方案是: 在谷歌搜索之后,我注意到 du -h /home/user/me/doc.txt gives the size of file. 因此,我正在考虑获得一个新的web服务,它获取一个文档位置,连接到我的盒子,运行上面的命令,并返回大小 唯一担心的是我会有大约1000个结果。它们将位于不同的文件夹中。因此,在每个文件上运行上述命令需要时间 有没有办法让我
du -h /home/user/me/doc.txt gives the size of file.
因此,我正在考虑获得一个新的web服务,它获取一个文档位置,连接到我的盒子,运行上面的命令,并返回大小
唯一担心的是我会有大约1000个结果。它们将位于不同的文件夹中。因此,在每个文件上运行上述命令需要时间
有没有办法让我的工作高效地完成
谢谢您可以使用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"
你能用java
File
class读取文件的大小吗。