web-dev-qa-db-fra.com

Comment renommer un fichier à l'aide de NSFileManager

J'ai un seul fichier nommé a.caf dans le répertoire des documents. Je voudrais le renommer lorsque l'utilisateur tape dans un UITextField et appuie sur change (le texte entré dans le UITextField devrait être le nouveau nom de fichier).

Comment puis-je faire ceci?

37
Dipakkumar

Vous pouvez utiliser moveItemAtPath .

NSError * err = NULL;
NSFileManager * fm = [[NSFileManager alloc] init];
BOOL result = [fm moveItemAtPath:@"/tmp/test.tt" toPath:@"/tmp/dstpath.tt" error:&err];
if(!result)
    NSLog(@"Error: %@", err);
[fm release];
83
diciu

Pour garder cette question à jour , j'ajoute également la version Swift:

let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
let originPath = documentDirectory.stringByAppendingPathComponent("/tmp/a.caf")
let destinationPath = documentDirectory.stringByAppendingPathComponent("/tmp/xyz.caf")

var moveError: NSError?
if !manager.moveItemAtPath(originPath, toPath: destinationPath, error: &moveError) {
    println(moveError!.localizedDescription)
}
13
Michal

Ceci est la fonction de daehan park à convertir en Swift 3:

func moveFile(pre: String, move: String) -> Bool {
    do {
        try FileManager.default.moveItem(atPath: pre, toPath: move)
        return true
    } catch {
        return false
    }
}
4
victor_luu

Travaillé sur Swift 2.2

func moveFile(pre: String, move: String) -> Bool {
    do {
        try NSFileManager.defaultManager().moveItemAtPath(pre, toPath: move)
        return true
    } catch {
        return false
    }
}
0
daehan park