Wie kann ich die Erweiterung einer Datei mit Perl überprüfen?

7

Zu meinem Perl-Skript wird eine Datei als Argument übergeben. Die Datei kann eine .txt -Datei oder eine .zip -Datei sein, die die .txt -Datei enthält.

Ich möchte Code schreiben, der ungefähr so ​​aussieht

%Vor%

Eine Möglichkeit, die Erweiterung zu überprüfen, besteht darin, eine Aufteilung auf . durchzuführen und dann das letzte Ergebnis im Array zu vergleichen (zurückgegeben durch Split).

Gibt es einen besseren Weg?

    
Lazer 15.10.2010, 07:52
quelle

6 Antworten

11

Sie können dazu File :: Basename verwenden.

%Vor%

Dies führt zu:

%Vor%     
Dave Cross 15.10.2010, 10:03
quelle
12

Eine andere Lösung ist die Verwendung von File::Type , die den Typ der Binärdatei bestimmt.

%Vor%

Auf diese Weise müssen Sie sich nicht mit fehlenden / falschen Erweiterungen befassen.

    
Alan Haggai Alavi 15.10.2010 08:27
quelle
6

Wie sieht es mit dem Ende des Dateinamens aus?

%Vor%

und dann:

%Vor%

Weitere Informationen hier .

    
eumiro 15.10.2010 07:56
quelle
2

Sie können die Dateierweiterung mit einer Regex-Übereinstimmung wie folgt überprüfen:

%Vor%     
codaddict 15.10.2010 07:57
quelle
2

Warum verlassen Sie sich auf die Dateierweiterung? Versuchen Sie einfach, die entsprechende Exception-Behandlung zu entpacken und zu verwenden:

%Vor%     
Eugene Yarmash 15.10.2010 08:23
quelle
2

Ich weiß, diese Frage schon einige Jahre alt, aber für alle, die hier in der Zukunft kommen, eine einfache Möglichkeit, einen Dateipfad in seine konstituierenden Pfad, Dateinamen, Basisnamen und Erweiterung auseinander zu brechen ist wie folgt.

%Vor%

Sie können die Ergebnisse mit den folgenden Ergebnissen testen.

%Vor%

Hoffe, das hilft.

    
Luke G 04.04.2014 16:56
quelle

Tags und Links