NSFileManager nicht löschen Sie eine Datei, die vorhanden ist
Ich habe einige problem mit dem NSFileManager Funktionalitäten.
Dies geschieht sowohl auf dem Simulator und ein iPhone-Gerät (iOS 5.1).
Grundsätzlich, ich habe eine Reihe von Dateien, die gespeichert werden in einem Dokument, das ich erstellt. Jetzt versuche ich, um eine Datei zu verschieben (gespeichert im Pfad) in das gleiche Verzeichnis mit einem anderen Namen, um zu überprüfen, ob die Löschung 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);
}
}
Die Ausgabe ist sowohl Dateien auf Pfad und Pfad.gelöscht.
Ich letztendlich auch nur wollen, um die Datei zu entfernen verwenden removeItemAtPath aber, dass nicht funktioniert. Es gibt einen Erfolg, aber wenn ich sehe, wie es in der Datei-Verzeichnis, die ich noch sehen kann es dort auch nach einer Stunde.
InformationsquelleAutor Devang | 2012-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um eine Datei zu löschen, die Sie verwenden sollten
removeItemAtPath:myPath error:NULL
wieIch fand das problem in meinem code. Es war nur so, dass ich begonnen hatte, einen NSTimer, dass irgendwo halten würde, speichern Sie die Datei alle paar Sekunden, so dass selbst nach dem löschen, wird die Datei geschrieben habe wieder den Eindruck, dass es nicht immer gelöscht. Ich bin der Annahme, dass diese Antwort als technisch korrekt ist.
Ich würde empfehlen, hinzufügen in fileExistsAtPath mit Ihrer Logik. Ich habe manchmal bemerkt isDeletableFileAtPath noch gibt true zurück, für eine Weile nach die Datei wurde gelöscht/entfernt, aber fileExistsAtPath ist immer richtig.
InformationsquelleAutor cnu
Verwenden Sie diese für die Suche Pfad und löschen Sie ein video
InformationsquelleAutor Sanjay Kumar Yadav
Ich lief in das gleiche Problem. Ich bin immer noch verblüfft, warum der fix funktioniert, aber es ist erwähnenswert, im anderen Fall kann es erklären.
Entdeckte ich, dass
[[NSFileManager defaultManager] removeItemAtURL:url error:&error]
würde false zurück auf den ersten Versuch aber mit einem null-Fehler. Beim zweiten Versuch würde es wieder wahr.Hier ist, was mein code sah aus wie:
Entdeckte ich, dass wenn ich meine eigene NSFileManager Instanz, es würde Arbeit auf dem ersten Versuch.
Ich auf die iOS9-simulator. Das riecht nach einem bug. Ich werde die Datei ein radar.
InformationsquelleAutor David
Ich nur das herausfinden von etwas, das sehr wichtig wenn Sie NSFileManager. Sie müssen sich bewusst sein, App-Sandboxing.
Dieser Linie zurückkehren, das Dokument-Pfad-Verzeichnis Ihrer app in der Sandbox. Wenn Sie erstellen eine Datei mit dem Dateimanager in Ihrem Dokument-Verzeichnis (für e.g) speichern keine vollständigen Pfad, sondern nur der Pfad vom aktuellen Dokument-Verzeichnis.
Werden Sie in der Lage, neu zu erstellen Sie den vollständigen Pfad der von Ihnen erstellten Datei.
Hoffnung (nach 5 Jahren) helfen, über die Entwickler 😉
InformationsquelleAutor Jean-Philippe