Question

I am looking for a Java code whereby I can detect all volumes (or drives) in a Mac. I have seen various codes on the internet but nothing is working. The current code I am using is shown below:

FileSystemView fsv = FileSystemView.getFileSystemView();
File[] roots = fsv.getRoots();
for (File f: roots) {
    System.out.println(fsv.getSystemDisplayName(f);
}

This is not working on a Mac for me. Does someone know what code will allow me to detect drives on Mac?

Thanks a lot.

Was it helpful?

Solution

Mac OS is based on Unix.

Drives are not mounted in the root folder(s) - which will typically be "/".

They are usually mounted in /dev/.

To ensure where your drives are mounted, open Terminal and type:

diskutil list

Use that to get your mounting points.

For instance (ugly code!):

FileSystemView fsv = FileSystemView.getFileSystemView();
File dev = fsv.getChild(fsv.getRoots()[0], "dev");
for (String listed: dev.list()) {
    System.out.println(listed);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top