Новый API файловой системы в Java 7 может сделать это:
FileSystem fs = FileSystems.getDefault();
for (Path rootPath : fs.getRootDirectories())
{
try
{
FileStore store = Files.getFileStore(rootPath);
System.out.println(rootPath + ": " + store.type());
}
catch (IOException e)
{
System.out.println(rootPath + ": " + "<error getting store details>");
}
}
В моей системе он выдал следующее (с компакт-диском на диске D, остальным жестким диском илисетевые ресурсы):
C:\: NTFS
D:\: CDFS
H:\: NTFS
M:\: NTFS
S:\: NTFS
T:\: NTFS
V:\: <error getting store details>
W:\: NTFS
Z:\: NTFS
Таким образом, запрос о типе хранилища файлов type () должен сделать это.
Если компакт-диск не находится в приводе, getFileStore () вызовы
java.nio.file.FileSystemException: D :: Устройство не готово.