2011-08-11 56 views
4

After getting a list of the drive roots,有沒有在Java跨平臺的方式來檢查任何驅動器是否是:獲取所有DVD驅動器在Java中

  • DVD驅動
  • ...包含磁盤?

我希望用戶能夠選擇DVD進行播放,並將選項縮小到DVD驅動器而不是包括其他驅動器(如筆式驅動器,硬盤驅動器等)在這種情況下會有所幫助。如果我能得到這樣的驅動器的列表,展示了那些包含磁盤將再次有益的(同樣的道理。)

周圍搜索後,雖然我還沒有找到任何辦法做到這一點不涉及特定平臺兩輪牛車。那裏有什麼嗎?

回答

6

在Java 7中的新file system API可以這樣做:

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 

因此,對文件存儲的類型()的查詢應該這樣做。

使用CD不在驅動器中,getFileStore()調用拋出

java.nio.file.FileSystemException:d ::該設備未準備好。

+1

一個黑客雖然的位,真的。但這對於識別即時可玩的驅動器非常有用。但是,不希望將其用於永久顯示驅動器。 –

+4

這不是跨平臺。在使用EXT4的Linux上,輸出爲: /:rootfs –

相關問題