如何使用NSFileManager重命名文件

时间:2010-08-17 08:05:11

标签: nsfilemanager

我在文档目录中有一个名为 a.caf 的文件。当用户输入UITextField并按下更改时,我想重命名它(UITextField中输入的文本应该是新文件名。)

我该怎么做?

4 个答案:

答案 0 :(得分:83)

您可以使用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];

答案 1 :(得分:13)

为了让这个问题保持最新状态,我还添加了 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 :(得分:2)

这是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
    }
}

答案 3 :(得分:0)

使用 Swift 2.2

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