Java 7 has several promising classes in this area, for example: http://download.java.net/jdk7/docs/api/java/nio/file/FileSystem.html
Assuming you need to work in Java 6 as well, I would suggest running a shell script and analyzing its output. On Windows, you can run mountvol, on Unix / MacOS X mount, etc. Of course, parsing the output will be a little tedious, and you have to worry about every OS the application runs on, but at least ... I donโt know what .... does it work?
Here is an example of code that seems useful on Windows:
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Volume") For Each objItem In colItems WScript.Echo "Automount: " & objItem.Automount WScript.Echo "Block Size: " & objItem.BlockSize WScript.Echo "Capacity: " & objItem.Capacity WScript.Echo "Caption: " & objItem.Caption WScript.Echo "Compressed: " & objItem.Compressed WScript.Echo "Device ID: " & objItem.DeviceID WScript.Echo "Dirty Bit Set: " & objItem.DirtyBitSet WScript.Echo "Drive Letter: " & objItem.DriveLetter WScript.Echo "Drive Type: " & objItem.DriveType WScript.Echo "File System: " & objItem.FileSystem WScript.Echo "Free Space: " & objItem.FreeSpace WScript.Echo "Indexing Enabled: " & objItem.IndexingEnabled WScript.Echo "Label: " & objItem.Label WScript.Echo "Maximum File Name Length: " & objItem.MaximumFileNameLength WScript.Echo "Name: " & objItem.Name WScript.Echo "Quotas Enabled: " & objItem.QuotasEnabled WScript.Echo "Quotas Incomplete: " & objItem.QuotasIncomplete WScript.Echo "Quotas Rebuilding: " & objItem.QuotasRebuilding WScript.Echo "Serial Number: " & objItem.SerialNumber WScript.Echo "Supports Disk Quotas: " & objItem.SupportsDiskQuotas WScript.Echo "Supports File-Based Compression: " & _ objItem.SupportsFileBasedCompression WScript.Echo Next
Here is the result I got for my e-book reader:
Automount: True Block Size: 4096 Capacity: 999120896 Caption: G:\ Compressed: Device ID: \\?\Volume{8e3b4ce5-a124-11e0-9d2b-e30c5839642d}\ Dirty Bit Set: False Drive Letter: G: Drive Type: 2 File System: FAT32 Free Space: 663683072 Indexing Enabled: Label: PocketBook9 Maximum File Name Length: 255 Name: G:\ Quotas Enabled: Quotas Incomplete: Quotas Rebuilding: Serial Number: 1276177233 Supports Disk Quotas: False Supports File-Based Compression: False
source share