mas se a drive for a F: ou E: puff...
se esse código for correr num *nix por exemplo, puff...esse só dá em windows mesmo, o que derrota totalmente a ideia de portabilidade do Java!
qualquer BOM programador de Java terá sempre presente na sua mente a máxima: "Write once, run everywhere!"
Se a drive for a E, ou a F, isso é questão do man escrever o seu próprio código (eu não vou adivinhar o que ele quer!). Não é difícil fazer um ciclo a ver se a label que ele quer está na letra r: ou s:.. puff
Se deres umas olhadelas pelos Javadoc oficiais podes observar que a intenção é de ler para todos os SOs. Por isso, para já,
o código é multi-plataforma (obviamente quererias depois experimentar um /mnt/cdrom, ou mesmo ver as variáveis de ambiente para saberes em que SO estás a trabalhar).
getSystemDisplayName
public
String getSystemDisplayName(
File f)
Name of a file, directory, or folder
as it would be displayed in a system file browser. Example from Windows: the "M:\" directory displays as "CD-ROM (M
" The default implementation gets information from the ShellFolder class.
Parameters: f - a File object
Returns: the file name
as it would be displayed by a native file chooser
Since: 1.4
See Also: JFileChooser.getName(java.io.File)
A questão aqui é que isso não foi implementado (para Linux) na máquina virtual do Java pelo simples motivo de até as próprias bibliotecas do Linux/Unix não terem esse conceito introduzido (desconheço que isso assim o seja). A única maneira de se fazer isto de forma elegante em Java seria ler directamente do dispositivo "em bruto", provavelmente isso se poderia obter a ler os cabeçalhos.. Mas isso é do caneco..
SE o ffar precisar de ler isso em Linux OU SE quiser fazer uma coisa que funcione para vários SO a única solução na minha óptica passa por ler as variáveis do ambiente e ver qual é o SO. Se é o Windows, o código é o normal do Java. Se for Linux, poderá fazer-se que o Java chame um programa externo (volname?!?), embora isso na minha opinião fique um pouco foleiro. O programa também pode tentar obter o label do cd-rom e, caso não consiga porque é linux, poderá chamar um timer que espere um ano e que apresente a mensagem "A aguardar até que isso tenha sido implementado..."
bmpv666 e na próxima vez que acusares alguém, primeiro informa-te sobre as coisas.. olha e já agora, apresenta uma solução
tens aí uma oportunidade de mostrares ser um "BOM" programador Java, lolada.... puuuuuuuuuuuuffffffff