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.
Jetzt kommentieren