Hallo,
kann mir jemand sagen, warum es alle bis auf eine Datei immer gelöscht werden, obwohl eigentlich alle gelöscht werden sollen, ich hoffe ihr könnt mir helfen?!
opendir my $dir, $pfadDerDateien or die $!;
while( my $entry = readdir $dir) # nach und nach die Einträge im Verzeichnis holen
{
my $path = $pfadDerDateien . '/' . $entry;
if( -f $path )
{ # wenn es eine Datei ist
unlink $path; # lösche die Datei
}
}
closedir $dir;
Gruss
User since
2003-08-04
14371
Artikel
ModeratorIn
Mach mal aus
unlink $path; ein
unlink $path or warn "$path: $!"; und schau Dir die Fehlermeldung an!
User since
2005-01-17
14761
Artikel
Admin1
Eigentlich solltest du auch prüfen, warum ein unlink nicht klappt.
also besser:
unlink($path) or warn "$!";
Was gibt dir den unlink zurück?
User since
2003-08-04
14371
Artikel
ModeratorIn
Hast Du die Datei noch anderweitig geöffnet? Windows erlaubt es nicht, Dateien zu löschen, die noch anderweitig verwendet werden. Oder ist es eine Datei, die nur der Administrator löschen darf?
Es kommt die folgende Meldung immer nur für eine Datei:
Permission denied at C:\Documents and Settings\Desktop\Dateien-to-Eine-txt.pl line 531, <in> line 23227.
die Zeile 531 sieht wie folgt aus, genau die Löschzeile
unlink($path) or warn "$!";
UND NUN, was kann ich hier machen?
Das ist ja das lustige dran, die datei ist nicht geöffnet und wenn ich in einem anderen Ordner dateien löschen will, meckert der genauso nur bei einer Datei alle anderen werden gelöscht, ob es 100 oder 1000 sind, nur eine wird angeschnauzt, seltsam?!
User since
2003-08-07
2921
Artikel
BenutzerIn
Manchmal verbockt es der Explorer. Dann muss man entweder neustarten oder den Explorer-Prozess abschießen (der dann automatisch neu startet). Frag mich nur nicht wie es dazu kommt.
User since
2005-01-17
14761
Artikel
Admin1
Kann ja sein, dass gerade ein Index für die WIndowssuche drüber läuft oder der Virenscanner blockt. Wie gesagt: Windows ist da sehr zickig.
Falls es der Explorer ist, solltest du den so einstellen, dass er in separaten Prozessen gestartet wird.
Extras -> Ordneroptionen -> Ansicht
[x] Ordnerfenster in eigenem Prozess starten