با استفاده از API های استاندارد JDK من فقط یک روش پیدا کردم که اونم فقط در ویندوز کار می کنه! کد زیر، فلش مموری های متصل به سیستم را پیدا می کند:
File[] files;
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
files = File.listRoots();
for (File file : files) {
if (fileSystemView.getSystemTypeDescription(file) != null
&& fileSystemView.getSystemTypeDescription(file)
.contains("Removable Disk")) {
//file is a USB drive;
}
}
پ.ن. بنظر می رسه بهترین روش برای این کار استفاده از توابع و دستورات سیستم عامل است که می توان آنها را با JNI و یا ProcessBuilder فراخوانی کرد. البته این روش cross platform نیست.