2016-03-29 17 views
3

Ich versuche eine Datei zu verschieben, auch wenn eine Datei mit dem gleichen Namen bereits existiert.Datei verschieben und überschreiben

NSFileManager().moveItemAtURL(location1, toURL: location2) 

Does NSFileManager ‚s Methode moveItemAtURL eine Überschreibung Option haben? Wie kann ich die vorhandene Datei ersetzen?

+0

Löschen Sie die Zieldatei und dann den Umzug. – EmilioPelaez

+1

es gibt viele objc Antworten auf diese Frage. Sie können möglicherweise einige dieser Antworten in swift konvertieren, z. B. http://stackoverflow.com/questions/6137423/how-to-overwrite-a-file-with-nsfilemanager-when-copying und http: // stackoverflow .com/Fragen/20683696/how-to-Überschreiben-a-Ordner-using-NSFileManager-defaultmanager-when-Kopieren –

Antwort

6

Sie können immer überprüfen, ob die Datei am Zielort existiert. Wenn dies der Fall ist, lösche es und verschiebe es.

let filemgr = NSFileManager.defaultManager() 

if !filemgr.fileExistsAtPath(location2) 
{ 
    do 
    { 
    try filemgr.moveItemAtURL(location1, toURL: location2) 
    } 
    catch 
    { 
    } 
} 
else 
{ 
    do 
    { 
    try filemgr.removeItemAtPath(location2) 
    try filemgr.moveItemAtURL(location1, toURL: location2) 
    } 
    catch 
    { 

    } 
} 
+0

wäre dies nicht mehr prägnant sein: 'wenn filemgr.fileExistsAtPath (location2) { tun { try filemgr.removeItemAtPath (location2) } Fang { } } do { filemgr.moveItemAtURL versuchen (location1, tourl: location2) } c atch { } ' – KaraBenNemsi