Tech-Ecke / Delphi Inhalt / Spezielle Verzeichnisse ermitteln

 

   Anwendungsbezogene Ordner:

 

   Auslesen und setzen des aktuellen Verzeichnisses (Arbeitsverzeichnis): 

  var
            WorkDir:  String;

 WorkDir := GetCurrentDir; // aktuelles Arbeitsverzeichnis auslesen

 SetCurrentDirectory (PChar(WorkDir)); // aktuelles Arbeitsverzeichnis setzen

 


 

   Dateipfade der eigenen Anwendung ermitteln: 

Der Dateipfad befindet sich im ParamStr(0)

  Edit1.Text := ParamStr(0);
 

   Temp-Verzeichnis (Benutzer) ermitteln: 

  Edit1.Text := GetEnvironmentVariable('temp');
 

 

   System-Verzeichnisse ermitteln

 

Zum auslesen eines speziellen Systemverzeichnisses, z.B. "Anwendungsdaten", welches bei einer Standardinstallation (NT, XP, Vista...) unter "C:\Dokumente und Einstellungen\Benutzer\Anwendungsdaten" zu finden ist, kann man sich folgender Funktion bedienen: (Bitte nicht vergessen, die beiden Units shlobj und ActiveX unter Uses einzubinden!)

   GetSpecialFolder: – benötigt shlobj und ActiveX in uses!

  function GetSpecialFolder (aFolder: Integer): String;
var
   pIdL: PItemIDList;
   Path: array [0..Max_Path] of Char;
   Allocator: IMalloc;
begin
   SHGetSpecialFolderLocation (0, aFolder, pIdL);
   SHGetPathFromIDList (pIDL, Path);
   if Succeeded (SHGetMalloc (Allocator)) then
      begin
         Allocator.Free (pIdL);
         {$IFDEF VER100}
         Allocator.Release;
         {$ENDIF}
      end;
   Result := Path;
end;

Quelle: http://www.delphipraxis.net

       

   Syntax:

   Edit1.Text := GetSpecialFolder(CSIDL_APPDATA)  // zeigt den Pfad zu "Anwendungsdaten" im Edit1 an. Oder besser -> ($1A)
 

   Weitere Verzeichnisse:

CSIDL_APPDATA $1A Anwendungsdaten des Benutzers (CSIDL_COMMON_APPDATA [$23]für alle Benutzer)
CSIDL_BITBUCKET   Papierkorb
CSIDL_COOKIES   Cookies des Benutzers (CSIDL_COMMON_FAVORITES für alle Benutzer)
CSIDL_DESKTOP $0 Desktop
CSIDL_MYPICTURES $27 Eigene Bilder
CSIDL_PERSONAL $5 Eigene Dateien
CSIDL_PROGRAMS $2 "Programme" im Startmenü 
CSIDL_STARTMENU $B Startmenü Wurzelverzeichnis
CSIDL_COMMON_STARTUP $0017 Startmenü für alle Benutzer
CSIDL_STARTUP   Autostart (CSIDL_COMMON_STARTUP für alle Benutzer)
CSIDL_PROGRAM_FILES $26 Programme im Windowsverzeichnis
CSIDL_RECENT   "Dokumente" im Startmenü
CSIDL_SENDTO   "Senden an" im Kontextmenü
CSIDL_WINDOWS $24 Windows Installationsverzeichnis
CSIDL_SYSTEM $25 Windows Systemverzeichnis
 

Weitere CSIDL-Werte gibt es hier

 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 27.05.2010]