Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find all drive letters in Java

Tags:

java

windows

For a project I'm working on. I need to look for an executable on the filesystem. For UNIX derivatives, I assume the user has the file in the mighty $PATH variable, but there is no such thing on Windows.

I can safely assume the file is at most 2 levels deep into the filesystem, but I don't know on what drive it will be. I have to try all drives, but I can't figure out how to list all available drives (which have a letter assigned to it).

Any help?

EDIT: I know there is a %PATH% variable, but it is not as integrated as in UNIX systems. For instance, the application I'm looking for is OpenOffice. Such software would not be in %PATH%, typically.

like image 276
wvdschel Avatar asked Sep 09 '08 07:09

wvdschel


2 Answers

http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()

File[] roots = File.listRoots();
for(int i = 0; i < roots.length ; i++)
    System.out.println("Root["+i+"]:" + roots[i]);

google: list drives java, first hit:-)

like image 144
Tony BenBrahim Avatar answered Oct 25 '22 16:10

Tony BenBrahim


Looking "everywhere" can be very messy.

Look at a CD-rom drive, and it spins up. That can be very noisy.

Look at a network drive, and it may be very slow. Maybe the server is down, and you may need to wait for minutes until it times out.

Maybe (for Windows-machines) you should just look in the start-menu. If nothing there points at OOo, it's probably not installed. If it is, the user is probably an advanced user, that will have no problems pointing out the location manually.

like image 34
myplacedk Avatar answered Oct 25 '22 16:10

myplacedk