0

ドキュメントへのリンクを多数表示する Web アプリがあります。これらのドキュメントは私の Linux ボックスにあります。

ここで、各ファイルのサイズを 1 つの列に表示したいと思います。

今考えている解決策は次のとおりです。

Google検索の後、私はそれに気づきました

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

したがって、ドキュメントの場所を取得し、ボックスに接続して上記のコマンドを実行し、サイズを戻す新しい Web サービスを取得することを考えています。

唯一の懸念は、約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を超えるファイルがさまざまなフォルダに保存されている場合、1秒もかかりません。

使用したコマンド:

"/bin/sh", "-c", "du -h -a /media/mp3 | grep .mp3" 
于 2013-02-22T20:40:47.433 に答える