如何使用NSFileManager重命名文件

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

我怎样才能做到这一点?

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

为了使这个问题保持最新 ,我还添加了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) } 

这是daehan公园转换成Swift 3的function:

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

工作在Swift 2.2上

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