私は現在、apache-commons FileUtils.sizeOfDirectory(ファイルファイル)メソッドを使用してディレクトリのサイズを取得しています。私が実際に必要とするのは、ディスクのディスクのサイズがで、duのユーティリティがUnixの下に表示されているだけです。ディスク上のJavaディレクトリサイズ?
この情報はJavaで取得できますか?
私は現在、apache-commons FileUtils.sizeOfDirectory(ファイルファイル)メソッドを使用してディレクトリのサイズを取得しています。私が実際に必要とするのは、ディスクのディスクのサイズがで、duのユーティリティがUnixの下に表示されているだけです。ディスク上のJavaディレクトリサイズ?
この情報はJavaで取得できますか?
du
は、ディレクトリツリー全体を再帰的に検索し、見つかったすべてのファイルのサイズを追加することでこの情報を検出します。 (各ファイルサイズを割り当て単位まで丸めた後、どのように割り振り単位がわからないのかを知る方法)。
これを行うには、外部のdu
プロセスを同様に実行するか、起動する必要があります。
フォルダツリーを再帰的に検索する必要があります。
Java 7を使用している場合は、すばらしいです。
Files.walkFileTree(file.toPath(), new SimpleFileVisitor<Path>(){
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
size += attrs.size();
return super.visitFile(file, attrs);
}
});
は、Java 6では、再帰的にFile.listFiles()
を使用して、手動で各ファイルサイズを確認する必要があります。しかし、これは非常に遅いことに注意してください。したがって、多数のファイルを調べている場合は、外部コマンドに生成されるソリューションを見つける価値があります。
コードをプラットフォームに依存しないようにする必要があるため、私はduを生成したくありません。私は割り当て単位の管理を調べようとします。ありがとう – Husker14