Der Dateinamen bestimmen?
Alex
- perl
Hallo,
ich stehe vor dem Problem der Dateiname aus einem String herauszufiltern...
Es muss platformunabhängig sein und ich habe so probiert:
-----------------------
sub CheckFileName {
$_[0] =~ s/\w://;
$_[0] =~ s/([^/\]+)$//;
$_[0] =~ s/..+//g;
$_[0] =~ s/\s+//g;
return $_[0];
}
-----------------------
Ich erwarte bei der Übergabe von C:\Desktop\eine datei.tar.gz an meine Funktion ein Return-Wert: eine datei.tar.gz
Wo ist mein Problem?
Danke
Hallo Alex,
ich stehe vor dem Problem der Dateiname aus einem String herauszufiltern...
Ich erwarte bei der Übergabe von C:\Desktop\eine datei.tar.gz an meine Funktion ein Return-Wert: eine datei.tar.gz
kann es sein, dass Du basename suchst?
Freundliche Grüße
Vinzenz
kann es sein, dass Du basename suchst?
Das Problem ist, dass der Verzeichnisname nicht konstant ist. Und das OS kann variabel sein... :(
kann es sein, dass Du basename suchst?
Das Problem ist, dass der Verzeichnisname nicht konstant ist. Und das OS kann variabel sein... :(
Wenn das OS variabel ist, "weiß" das das Modul, wenn der Dateiname aus einem undefinierten OS kommt, musst du dies entweder herausfinden oder raten. Dann kannst du versuchen den entsprechenden Wert mit Hilfe von fileparse_set_fstype() zu setzen.
Struppi.
Wenn das OS variabel ist, "weiß" das das Modul, wenn der Dateiname aus einem undefinierten OS kommt, musst du dies entweder herausfinden oder raten. Dann kannst du versuchen den entsprechenden Wert mit Hilfe von fileparse_set_fstype() zu setzen.
Tja, die funktion fileparse_set_fstype() "weiß" nur das, was ich ihr übergebe, oder stimmt das nicht?
Sowas:
my @OS = qw (neutrino linux unix MSDOS MSwin32 MacOS);
fileparse_set_fstype(@OS);
geht nicht... :(
Wie kann ich den richtigen Wert "raten"?
Wenn das OS variabel ist, "weiß" das das Modul, wenn der Dateiname aus einem undefinierten OS kommt, musst du dies entweder herausfinden oder raten. Dann kannst du versuchen den entsprechenden Wert mit Hilfe von fileparse_set_fstype() zu setzen.
Tja, die funktion fileparse_set_fstype() "weiß" nur das, was ich ihr übergebe, oder stimmt das nicht?
Ja. bzw. nein das stimmt.
Sowas:
my @OS = qw (neutrino linux unix MSDOS MSwin32 MacOS);
fileparse_set_fstype(@OS);
geht nicht... :(
Wie kann ich den richtigen Wert "raten"?
Indem du versuchst zu raten was die Pfadetrenner sind oder wenn es eine online Anwendung ist kannst du versuchen anhand des User Agenten das OS ermitteln.
Struppi.