Objective c 如何区分moveItemAtPath:toPath:error:method中的文件和目录

Objective c 如何区分moveItemAtPath:toPath:error:method中的文件和目录,objective-c,Objective C,该方法的声明如下: -(BOOL)moveItemAtPath:(NSString*)srcPath toPath:(NSString)dstPath错误:(NSError*)错误 它的文档说源路径可以是文件名或目录名,假设我们在调用方法后,在当前工作目录中有一个名为“test”的文件和一个名为“test”的子目录: [fm moveItemAtPath:@“测试”路径:@“新测试”错误:null] 其中fm是NSFileManager类的对象,将重命名哪些项:文件还是目录?此方法如何区分文件和

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

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


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

正如@stam所说,您不能创建具有相同名称的文件和文件夹(请记住,
file.txt
不同于
file

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

- (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
}

你的目标是什么?Mac OS X和iOS(HFS)中使用的文件系统不允许使用相同名称创建文件和目录目标操作系统是Windows 7。。。我现在明白了这个想法,正如S.SIDYLL所说,如果我提供参数“文件”,方法会把它当作目录,如果提供“file .txt”,它会把它当作文件。