Вы можете использовать: java.io.File , для этого он может не содержать всю необходимую вам информацию (например, информацию о физическом хранилище), но он поможет вам создать большую часть логики, которую вы необходимо.
Вы можете взглянуть на muucommander , который является файловым менеджером с открытым исходным кодом. Они уже проделали большую работу, чтобы сделать такие вещи, и код очень чистый и доступный.
Вот рабочий образец:
import java.io.File;
public class FileWalkTest {
public static void main(String[] args) {
File file = new File("/Users/oscarreyes/code/");
printInfo( file );
}
public static void printInfo( File dir ) {
for( File child : dir.listFiles() ) {
if( child.isDirectory() ) {
System.out.println( "\n"+child.getAbsolutePath());
printInfo( child );
} else {
System.out.printf("%s read:%s write:%s xecute:%s, size:%d lastModified:%d %n", child.getName(), child.canRead(), child.canWrite(), child.canExecute(), child.length(), child.lastModified());
}
}
System.out.println();
}
}