Класс FileSystemView
от Swing имеет некоторые функциональные возможности для поддержки определения типа привода (cf isFloppyDrive
, isComputerNode
).Боюсь, что нет стандартного способа определить, подключен ли диск через USB.
Придуманный, непроверенный пример:
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileSystemView;
....
JFileChooser fc = new JFileChooser();
FileSystemView fsv = fc.getFileSystemView();
if (fsv.isFloppyDrive(new File("A:"))) // is A: a floppy drive?
В JDK 7 есть еще один вариант.Я не использовал его, но у FileStore
API есть метод type
.Документация гласит:
Формат строки, возвращаемой этим методом, сильно зависит от реализации.Это может указывать, например, используемый формат или хранилище файлов является локальным или удаленным.
Видимо, способ его использования будет следующим:
import java.nio.*;
....
for (FileStore store: FileSystems.getDefault().getFileStores()) {
System.out.printf("%s: %s%n", store.name(), store.type());
}