Ordnerfunktionen
Ordnung in Ordnern
Hier beschreibe ich, wie ich nicht Dateiinhalte sondern deren Namen und Speicherort ändern kann. Für diese Funktionen brauche ich Lese-, Schreib- und Ausführungsrechte im übergeordneten Ordner!
Dateinamen manipulieren
Datei erstellen:
fopen()
Den Dateinamen, dann die Schreibrechte angeben
$fileName="../$dirName/index.php"; // Datei-Namen preset
$fp = fopen("$fileName","w+"); // Datei erzeugen
fclose ($fp); // Datei schliessen
Datei kopieren:
copy("test.txt", "test_kopie.txt");
Erst Name der Originaldatei, dann Name der Kopie
Wenn der Name der Kopie bereits existiert, wird jene Datei überschrieben.
Es sollte auch mit einem Pfad gehen. Je nach Server wird dies aber unterbunden.
Datei umbenennen oder verschieben:
rename(pfad/altername.ext,pfad/neuername.ext)
- Erst alter Name, dann neuer Name; beide mit Pfad angeben.
- Wenn Ordner die im neuen Pfad genannt werden, auf dem Server noch nicht existieren, dann werden sie dort angelegt.
- Wenn eine Datei mit dem neuen Namen bereits existiert, wird sie ersetzt (ohne Warnung). Die Datei mit dem alten Namen ist dannach inexistent.
- rename() kann also Dateien wie auch Ordner umbenennen, je nach dem, was am Pfadende steht.
Datei löschen:
unlink()
Nur den Dateinamen angeben
unlink("test_kopie.txt");
Ordnernamen manipulieren
Ordner erstellen:
mkdir(()
Das zweite Argument vergibt die Zugriffsrechte (chmod)
mkdir("neuerOrdnerName", 0777);
Ordner umbenennen oder verschieben:
rename(Pfad/Ordner)
Erst alter Name, dann neuer Name (ev. mit neuem Pfad). Wenn Ordner die im neuen Pfad genannt werden, auf dem Server noch nicht existieren, dann werden sie dort angelegt. rename() funktioniert eben für Ordner oder Dateien
Ordner löschen:
rmdir()
Der zu löschende Ordner muss leer sein!
rmdir("OrdnerName");
Allerdings gibt es eine Funktion, welche beim Ordner löschen zuerst die darin zu findenden Dateien löscht:
if (is_dir("../$dirName")) { // falls zuvor ausgewählter Ordner vorhanden
// zu löschender Ordner muss zuerst geleert werden
$handle=opendir("../$dirName"); // Ordner zur Bearbeitung öffnen, achtung muss später unbedingt geschlossen werden
while ($fileToDel = readdir($handle)) // solange eine Datei vorhanden ist
{
if ($fileToDel != "." && $fileToDel != "..") // und diese nicht bloss aus einer oder zwei Stellen besteht
{
unlink("../$dirName//".$fileToDel); //Dateien löschen
} // fertig if
} // fertig while
closedir($handle); // Ordner nach Bearbeitung schliessen
// fertig Ordner leeren
rmdir("../$dirName"); // Ordner löschen (funktioniert nur falls leer)
} // fertig if is_dir