java - JFileChooser og NTFS JunctionPoints/Symlinks?

Indlæg af Hanne Mølgaard Plasc

Problem



JFileChooser i Swing (Java 1.6.0\_u25) synes ikke at vide, hvordan man skal håndtere NTFS Junction Points eller Symbolic Links.


Filvelgeren har ingen særlig håndtering:


int rv = mainfileChooser.showOpenDialog(parentFrame)


Når du bruger dette i en Windows 7-boks, kan de særlige mapper under Mine dokumenter (Mine billeder, Mine videoer, Min musik) ikke indtastes - brugeren klikker på dem, men der sker ikke noget, og de kan ikke vælges. Efter nogle eksperimenter sker det samme med ethvert SymLink eller Junction Point (både forud genereret af operativsystemet og manuelt oprettet.)


.lnk Genveje til mapper fungerer fint.


Er der en måde at løse dette på og lade mine brugere gemme billeder i 'Mine billeder'?

Bedste reference


Problemet med disse specielle typer er, at de ikke er cross-platform, så det er årsagen til, at JFileChooser ikke støtter dem.


Du vil måske bruge den oprindelige XFileDialog. Brugte det ikke af mig selv, men det forekommer relevant for dig.
Husk, at det er indfødt og ikke kan overføres til Linux/OSX. [3]

Andre referencer 1


Særlige mapper arbejder for mig i det mindste i systemets udseende.


try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e1) {
} catch (InstantiationException e1) {
} catch (IllegalAccessException e1) {
} catch (UnsupportedLookAndFeelException e1) {
}

Andre referencer 2


Med et fantastisk tilfælde faldt Java 1.6u27 lige, og indeholder en løsning til dette meget problem!


Udgivelses noter:
http://www.oracle.com/technetwork/java/javase/2col/6u27bugfixes-444150.html[4]


Fejl opskrivning:
http://bugs.sun.com/bugdatabase/view\_bug.do?bug\_id=7012783[5]


Fejldiskussionen drejer sig om DFS-links, snarere end Junction-punkter, men jeg tror, ​​at problemerne er de samme, og at teste dette lokalt er al den uhyggelige adfærd væk, og jeg kan gemme til Mine billeder (og venner) helt fint.