如何在moveItemAtPath:toPath:error:方法中区分文件与目录

时间:2011-04-13 10:05:12

标签: objective-c

这个方法的声明是: - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString )dstPath错误:(NSError * )错误 并且它的文档说源路径可以是文件名或目录名,假设我们在当前工作目录中有一个名为“test”的文件和一个名为“test”的子目录,在调用该方法之后: [fm moveItemAtPath:@“test”toPath:@“newTest”error:null];

其中fm是NSFileManager类的对象,要重命名的项目是哪个:文件还是目录?该方法如何区分文件和目录?

P.S。据我所知,如果源路径和目标路径相同,此方法会重命名,在这种情况下,源路径=目标路径=当前工作目录。

1 个答案:

答案 0 :(得分:1)

正如@stam所说,您无法创建具有相同名称的文件和文件夹(请注意file.txtfile不同。)

但是,如果您想知道路径是代表目录还是文件,请使用以下方法:

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory

喜欢在:

BOOL isDir;
if ([fm fileExistsAtPath:path isDirectory:&isDir]) {
    // Item Exists
    if (isDir) {
        // Is a directory
    } else {
        // Is a file
    }
} else {
    // Item doesn't exist
}