Java ist auch eine Insel

Samstag, Mai 12, 2007

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:

AddThis Social Bookmark Button

3 Comments:

Kommentar veröffentlichen

<< Home