현재 apache-commons FileUtils.sizeOfDirectory (파일 파일) 메소드를 사용하여 디렉토리 크기를 가져 왔습니다. 필자가 실제로 필요로하는 것은 디렉토리 의 디스크 크기가이고, 유추 아래 du 유틸리티로 표시되는 것입니다.Java 디렉토리 크기가 디스크에 있습니까?
이 정보를 Java로 가져올 수 있습니까?
현재 apache-commons FileUtils.sizeOfDirectory (파일 파일) 메소드를 사용하여 디렉토리 크기를 가져 왔습니다. 필자가 실제로 필요로하는 것은 디렉토리 의 디스크 크기가이고, 유추 아래 du 유틸리티로 표시되는 것입니다.Java 디렉토리 크기가 디스크에 있습니까?
이 정보를 Java로 가져올 수 있습니까?
du
은 전체 디렉토리 트리를 반복하고 찾은 모든 파일의 크기를 추가하여이 정보를 찾습니다. (각 파일 크기를 할당 단위까지 반올림 한 후 할당 단위가 무엇인지를 어떻게 알 수 있는지).
당신을 대신해서 수행하거나 외부 du
프로세스를 생성해야합니다.
폴더 트리를 반복적으로 검색해야합니다.
자바 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);
}
});
는 자바 6에서는 재귀 File.listFiles()
를 사용하여 수동으로 각 파일의 크기를 확인해야합니다. 그러나 이것은 매우 느리다는 것을 알고 있어야합니다. 따라서 많은 수의 파일을보고있는 경우 외부 명령을 생성하는 솔루션을 찾는 것이 좋습니다.
플랫폼 독립적 인 코드가 필요하기 때문에 나는 산란을하고 싶지 않습니다. 할당 단위 관리를 살펴 보겠습니다. 감사합니다 – Husker14