Insel: Ist eine Datei eine Verknüpfung (.lnk-Datei unter Windows)?
Bisher ist die File-Klasse noch nicht so ausgestattet, dass sie alle Fragen ohne Hacks beantwortet. Mit der JSR 203: „More New I/O APIs for the Java Platform“ ist hoffentlich Besserung auf dem Weg, aber heute kann die Frage nach der Dateiverknüpfung nur eine interne sun.awt.shell.ShellFolder beantworten. Die Klasse liefert bei .lnk-Dateien unter Windows mit isLink() ein klares true/false, gibt die Zieladresse mit getLinkLocation() und auf Anfrage mit getIcon() das assoziierte Datei-Icon als Image dazu.
String s = "C:\\Dokumente und Einstellungen\\All Users\\Startmenü\\Programmzugriff und -standards.lnk"
ShellFolder folder = ShellFolder.getShellFolder( new File( s ) );
System.out.println( folder.getFolderType() ); // Verknüpfung
if ( folder.isLink() )
System.out.println( folder.getLinkLocation() ); // C:\WINDOWS\system32\control.exe
Labels: Insel

3 Comments:
Und wie bekommt man ein sun.awt.shell.ShellFolder-Objekt, wenn man "nur" ein java.io.File-Objekt hat?
By
Anonym, at August 31, 2007 12:28 PM
?? Das File-Objekt wird doch in getShellFolder übergeben ??
By
Christian Ullenboom, at August 31, 2007 2:13 PM
Danke, da hatte ich wohl ein Brett vorm Kopf. Steht ja alles da.
By
Enrico Penetti, at September 04, 2007 3:36 PM
Kommentar veröffentlichen
<< Home