0

我有一个显示一堆文档链接的网络应用程序。这些文件位于我的 linux 机器上。

现在我想在一列中显示每个文件的大小。

我现在想的解决方案是:

谷歌搜索后我注意到

du -h /home/user/me/doc.txt gives the size of file.

所以我正在考虑获得一个新的网络服务,它需要一个文档位置,连接到我的盒子并运行上面的命令并吐回大小。

唯一担心的是我会有大约 1000 个结果。它们将位于不同的文件夹中。因此在每个文件上运行上述命令需要时间。

有什么办法可以有效地完成我的工作。

谢谢

4

1 回答 1

2

您可以使用 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" 
于 2013-02-22T20:40:47.433 回答