Ich habe ein Problem mit der Verwendung der NSFileManager-Funktionen. Dies geschieht sowohl auf dem Simulator als auch auf einem iPhone-Gerät (iOS 5.1).NSFileManager löscht keine Datei, die existiert
Grundsätzlich habe ich eine Reihe von Dateien, die in einem Dokument gespeichert sind, das ich erstellt habe. Jetzt versuche ich eine Datei (im Pfad gespeichert) in das gleiche Verzeichnis mit einem anderen Namen zu verschieben, um zu prüfen, ob das Löschen funktioniert.
if ([[NSFileManager defaultManager] isDeletableFileAtPath:path]) {
BOOL success = [[NSFileManager defaultManager] moveItemAtPath:path toPath:[path stringByAppendingString:@".deleted"] error:&error];
if (!success) {
NSLog(@"Error removing file at path: %@", error.localizedDescription);
}
}
Der Ausgang dieses ist beide Dateien auf Pfad und Weg .deleted. Ich möchte schließlich nur die Datei mit RemoveItemAtPath entfernen, aber das funktioniert nicht. Es gibt einen Erfolg zurück, aber wenn ich es im Dateiverzeichnis sehe, kann ich es noch nach einer Stunde dort sehen.
Ich habe das auch versucht, aber es funktioniert auch nicht. Das Problem ist nur, dass, egal ob ich moveItemAtPath oder deleteItemAtPath verwende, die Datei at path nicht gelöscht wird. – Devang
Ich habe das Problem in meinem Code gefunden. Es war nur so, dass ich irgendwo einen NSTimer gestartet hatte, der die Datei alle paar Sekunden speichern würde. Selbst nach dem Löschen wurde die Datei erneut geschrieben, was den Eindruck erweckte, dass sie nicht gelöscht wird. Ich akzeptiere diese Antwort, wie es technisch korrekt ist. – Devang
Ich würde auch vorschlagen, fileExistsAtPath mit Ihrer Logik hinzuzufügen.Mir ist aufgefallen, dass isDeletableFileAtPath nach dem Löschen/Löschen der Datei immer noch für eine Weile true zurückgibt, aber fileExistsAtPath ist immer korrekt. – user3344977