In java, you can use File.listRoots() to get all drives in the system.
I\'m looking to get only the external drives, i.e. USB drives, external hard disk
To get file system info, use something like:
import java.io.*;
import javax.swing.filechooser.*;
public class DriveTypeInfo
{
public static void main(String[] args)
{
System.out.println("File system roots returned by FileSystemView.getFileSystemView():");
FileSystemView fsv = FileSystemView.getFileSystemView();
File[] roots = fsv.getRoots();
for (int i = 0; i < roots.length; i++)
{
System.out.println("Root: " + roots[i]);
}
System.out.println("Home directory: " + fsv.getHomeDirectory());
System.out.println("File system roots returned by File.listRoots():");
File[] f = File.listRoots();
for (int i = 0; i < f.length; i++)
{
System.out.println("Drive: " + f[i]);
System.out.println("Display name: " + fsv.getSystemDisplayName(f[i]));
System.out.println("Is drive: " + fsv.isDrive(f[i]));
System.out.println("Is floppy: " + fsv.isFloppyDrive(f[i]));
System.out.println("Readable: " + f[i].canRead());
System.out.println("Writable: " + f[i].canWrite());
}
}
}
Also see this, this and this question.
You could use WMI or look into
GetRawInputDeviceList()
GetRawInputDeviceInfo()
This should get you started
C++
http://cboard.cprogramming.com/windows-programming/114294-getting-list-usb-devices-listed-system.html
Java
http:// forums.java.net/jive/thread.jspa?threadID=37942