Dateien aus Verzeichnis löschen - Letzte geht nicht
Der Jan
- php
Hallo liebe Foren-Gemeinde,
ich habe folgende Sachverhaltsproblematik:
Ich will mittels PHP die Dateien eines Ordners löschen und das klappt auch soweit ganz gut:
//Anschließend muss die alte Datei gelöscht werden.
if (!unlink("../Users/".$User.".dat"))
{
echo "<br>Fehler beim Löschen der Datei";
}
Die Dateien werden widerstandslos gelöscht. aber DIE LETZTE Datei nicht. Ich habe festgestellt, dass es immer die letzt im Alphabeth ist. Also AAA.dat BBB.dat CCC.dat , dann wird CCC.dat nicht gelöscht und es heißt
Permission denied. Diese Datei hat allerdings die selben Zugangsberechtigungen wie die anderen.
Hat jemand ne Idee?
MFG
Der Jan
Hallo Jan,
ich gehe mal davon aus, dass Du die Dateien per Schleife oder aus einem Array an die öschfunktion weitergibst?
Hast Du sowohl Schleifenbedingungen und Arrayinhalte mal kontrolliert? Dem Dateisystem ist es ja egal, ob es die letzte Datei ist oder nicht, ich tippe vielmehr auf einen Fehler beim Index und dem daraus resultierenden Dateinamen $user.".dat".
Gruß
cheops
Hallo liebe Foren-Gemeinde,
ich habe folgende Sachverhaltsproblematik:
Ich will mittels PHP die Dateien eines Ordners löschen und das klappt auch soweit ganz gut:
//Anschließend muss die alte Datei gelöscht werden.
if (!unlink("../Users/".$User.".dat"))
{
echo "<br>Fehler beim Löschen der Datei";
}Die Dateien werden widerstandslos gelöscht. aber DIE LETZTE Datei nicht. Ich habe festgestellt, dass es immer die letzt im Alphabeth ist. Also AAA.dat BBB.dat CCC.dat , dann wird CCC.dat nicht gelöscht und es heißt
Permission denied. Diese Datei hat allerdings die selben Zugangsberechtigungen wie die anderen.Hat jemand ne Idee?
MFG
Der Jan
Hat sich erledigt ;)
Der Filestrean wurde nach der letzen Datei nicht geschlossen...
while($file=readdir($dir))
{
if (@filetype($path.$file)!="dir")
{
$data = fopen($path."/".$file,"r");
printLine($data,$file);
$i++;
}
}
//Dateien schließen, um das Löschen zu ermöglichen
if(!empty($data))
{
fclose($data);
}
Is vielleicht hilfreich für User mit ähnlichen probs:)
MFG
Der Jan
while($file=readdir($dir))
{
if (@filetype($path.$file)!="dir")
{
$data = fopen($path."/".$file,"r");
printLine($data,$file);
$i++;
}}
//Dateien schließen, um das Löschen zu ermöglichen
if(!empty($data))
{
fclose($data);
}
Hier solltest du besser fclose immer ausführen, wenn du mit der aktuellen Datei fertig bist. Also etwa:
while($file=readdir($dir))
{
if (@filetype($path.$file)!="dir")
{
$data = fopen($path."/".$file,"r");
printLine($data,$file);
fclose($data);
$i++;
}
}