Wie kann ich einen Pfad mit allen Unterverzeichnissen in Perl erstellen?

8

Wenn Sie einen Pfad zu einer Datei (z. B. /home/bob/test/foo.txt) haben, in der jedes Unterverzeichnis im Pfad vorhanden sein kann oder nicht, wie kann ich die Datei foo.txt auf eine Art erstellen das verwendet "/home/bob/test/foo.txt" als einzige Eingabe, anstatt jedes nicht existierende Verzeichnis im Pfad einzeln zu erstellen und schließlich foo.txt selbst zu erstellen?

    
Haiyuan Zhang 25.08.2009, 07:35
quelle

3 Antworten

23

Sie können File :: Basename und Datei :: Pfad

%Vor%

Ich habe keine Tests hinzugefügt, um zu sehen, ob die Datei bereits existiert, aber das ist ziemlich einfach mit Perl hinzuzufügen.

    
seth 25.08.2009, 07:44
quelle
3

Verwenden Sie make_dir von File :: Util

%Vor%     
Nifle 25.08.2009 07:44
quelle
2

Ich glaube nicht, dass es eine Standardfunktion gibt, die alles, was Sie fragen, direkt aus dem Dateinamen erledigen kann.

Aber mkpath (), aus dem Modul File :: Path, kann es fast tun, wenn man das Verzeichnis des Dateinamens benutzt. Aus der Datei :: Pfaddokumente:

  

Die "mkpath" -Funktion bietet a   bequeme Möglichkeit, Verzeichnisse zu erstellen,   Selbst wenn Ihr "mkdir" -Kernel nicht funktioniert   Erstellen Sie mehr als eine Ebene von   Verzeichnis zu einem Zeitpunkt.

Beachten Sie, dass mkpath () Fehler nicht auf eine nette Art meldet: Es stirbt, anstatt nur aus irgendeinem Grund Null zurückzugeben.

Wenn Sie das alles tun, können Sie etwas tun wie:

%Vor%     
Michael Krebs 25.08.2009 08:38
quelle

Tags und Links