File::HomeDir - Heimatverzeichnis und dazugehörige Verzeichnisse ermitteln
Veröffentlicht von Thomas Fahle am (Permalink)
Jedem Nutzer eines Computers wird eine eigene zentrale Datenablage, sein Heimatverzeichnis, zugewiesen.
Unterhalb des Heimatverzeichnisse werden zusätzlich noch weitere Verzeichnisse für bestimmte Daten, z.B. Bilder oder Musik, angelegt.
File::HomeDir
File::HomeDir von Adam Kennedy bietet eine betriebssystemunabhängige Möglichkeit das Heimatverzeichnis und die dazugehörigen Spezialordner zu ermitteln.
Die niedrige Versionsnummer (0.80) deutet es schon an: File::HomeDir ist noch nicht ganz ausgereift. Für einige typische, eher einfache Fälle kann es jedoch schon eingesetzt werden.
Beispiel (Aktueller User)
#!/usr/bin/perl use strict; use warnings; use File::HomeDir; # Aktueller User my $home = File::HomeDir->my_home; my $desktop = File::HomeDir->my_desktop; my $docs = File::HomeDir->my_documents; my $music = File::HomeDir->my_music; my $pics = File::HomeDir->my_pictures; my $videos = File::HomeDir->my_videos; my $data = File::HomeDir->my_data; print "Home: $home \n" if $home; print "Desktop: $desktop \n" if $desktop; print "Docs: $docs \n" if $docs; print "Music: $music \n" if $music; print "Bilder: $pics \n" if $pics; print "Videos: $videos \n" if $videos; print "Daten: $data \n" if $data;
Ausgabe unter Linux:
Home: /home/tf Desktop: /home/tf Docs: /home/tf Music: /home/tf Bilder: /home/tf Videos: /home/tf Daten: /home/tf
Ausgabe unter Windows:
Home: C:\Dokumente und Einstellungen\tf Desktop: C:\Dokumente und Einstellungen\tf\Desktop Docs: C:\Dokumente und Einstellungen\tf\Eigene Dateien Music: C:\Dokumente und Einstellungen\tf\Eigene Dateien\Eigene Musik Bilder: C:\Dokumente und Einstellungen\tf\Eigene Dateien\Eigene Bilder Videos: C:\Dokumente und Einstellungen\tf\Eigene Dateien\Eigene Videos Daten: C:\Dokumente und Einstellungen\tf\Lokale Einstellungen\Anwendungsdaten
Beispiel (Anderer User)
Dieses Beispiel funktioniert unter Windows leider noch nicht.
#!/usr/bin/perl use strict; use warnings; use File::HomeDir; # Anderer User my $user = 'root'; my $home = File::HomeDir->users_home("$user"); my $desktop = File::HomeDir->users_desktop("$user"); my $docs = File::HomeDir->users_documents("$user"); my $music = File::HomeDir->users_music("$user"); my $pics = File::HomeDir->users_pictures("$user"); my $videos = File::HomeDir->users_videos("$user"); my $data = File::HomeDir->users_data("$user"); print "Home: $home \n" if $home; print "Desktop: $desktop \n" if $desktop; print "Docs: $docs \n" if $docs; print "Music: $music \n" if $music; print "Bilder: $pics \n" if $pics; print "Videos: $videos \n" if $videos; print "Daten: $data \n" if $data;
ActiveState Perl
ActiveState liefert File::HomeDir in der Version 0.69 aus. Aktuell ist Version 0.80.Daher sollte File::HomeDir besser per CPAN-Shell installiert werden und nicht per ppm.
C:\>perl -MCPAN -e shell cpan> install File::HomeDir
Gnome, KDE und andere Desktops für Linux
Diverse Desktops für Linux legen, ähnlich wie Windows, spezielle Ordner für bestimmte Daten an. File::HomeDir findet diese Ordner in der Version 0.80 nicht. Das steht noch auf der Todo-Liste.