Ordner (+ Unterordner) und Dateien kopieren

ev0lst

Erfahrenes Mitglied
Hallo.

Ich möchte gerne einen gesamten Ordner mit Unterordnern inkl. Dateien kopieren und umbennen... Die Frage ist, wie ich das machen kann?!

Brauche ich für sowas eine Struktur-Datei? (XML?)

Würde mir sehr viel Arbeit ersparen, wenn es ohne XML gehen würde, da die Dateien schon etwas umfangreicher sind.

Die nächste Frage ist, ob es mit php4 (ich weiß, lifetime ende...) auch möglich ist.
 
Guten Mittag

Die Frage ist jetzt: Willst du ein ganzes Directory mit Unterdirectories umbenennen oder nur ein Ordner mit einigen Dateien darin?

Wenn du einen ganzen Strukturbaum bearbeiten willst, dann musst du dir wohl eine rekursive Funktion bauen, die durch die Directories pflügt und dir die Datei entweder nach Laufnummer oder gemäss einem definierten Pattern umbenamst.

Wenn du nur einen Ordner bearbeiten willst, reicht ein opendir und eine Schleife, mit welcher du die Dateien abarbeitest.

Gruss
De Igäl
 
Das, was Du brauchst ist eine Recursive-Function, die das Verz. einliest und Du dann damit weitere Schritte programmieren kannst. Es gibt dazu hier im Forum schon einige Abhandlungen, die Suche wird Dir dabei helfen.

XML brauchst Du dafür übrigens nicht, mit PHP4 geht das auch ;)

LG
Andy
 
Danke! Das klingt ja mal super :)

Es geht nur um den Hauptordner (umbenennen)...
Zur Info, es geht darum Smarty-Template-Sets generieren zu können. Ich denke das sollte jedem etwas sagen :)

Wie sieht diese Funktion in etwa aus? Ich weiß was rekursiv bedeutet... Die Frage ist nur, ob es mit fread oder ftp oder sowas gemacht werden sollte...

# EDIT

Es ist ja auch nicht so, als wären es 100000 Dateien. Man kennt ja die Smarty-Sachen, die man so ca. anlegt. Also auch wenn es lastiger wäre, ist es nicht sooo dramatisch :)
 
Nur mal so als Frage: Du weisst aber schon den Unterschied zwischen ftp und dem lesen einer Datei ? Du brauchst um eine Datei umzubenennen weder ftp noch fread :D

Guck dir mal die PHP-Doku an, speziell die Funktionen read_dir() und open_dir() - dort sind sogar beispiele, wie du ein Verz. ausliest. Das umebennen selbst geht gaaanz einfach mit rename().

LG
Andy
 
If you want to learn recursion, you must first learn recursion ;)

Du schreibst dir eine Funktion, die einen Ordner öffnet und dann prüft, ob Unterordner vorhanden sind. Wenn ja, ruft sich die Funktion wieder auf, wenn nein, dann benennt sie die Dateien um und setzt den Pointer auf einen Ordner oberhalb in der Hierarchie. Kannst dir ja ein Array basteln, wo du die Namen der bereits bearbeiteten Ordner ablegst.

Ich hoffe wir konnten dir mit unseren Denkanstössen etwas helfen.

Gruss
De Igäl
 
Hab grad geschaut: Ausm Fenster, untern Tisch, in die Glaskugel und sogar in die Tasse um ausm Kaffeesatz zu lesen. Hab deine Frage aber nicht gefunden.
 
Zurück