Как переименовать файл с помощью NSFileManager - PullRequest
36 голосов
/ 17 августа 2010

У меня есть один файл с именем a.caf в каталоге документов.Я хотел бы переименовать его, когда пользователь вводит UITextField и нажимает изменения (текст, введенный в UITextField должен быть новым именем файла).

Как я могу это сделать?

Ответы [ 4 ]

83 голосов
/ 17 августа 2010

Вы можете использовать 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];
13 голосов
/ 18 июня 2015

Чтобы сохранить этот вопрос актуальным , я также добавляю версию 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)
}
2 голосов
/ 16 апреля 2017

Это функция от daehan park для преобразования в Swift 3:

func moveFile(pre: String, move: String) -> Bool {
    do {
        try FileManager.default.moveItem(atPath: pre, toPath: move)
        return true
    } catch {
        return false
    }
}
0 голосов
/ 17 июля 2016

Работал на Swift 2.2

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