该方法是否应该将路径作为其参数?fileExistsAtPath:(NSFileManager)
它看起来就像一个文件名作为路径:
例如,/home/file.txt是一个文件,而/家/是路径。这个方法看起来像是以前者为参数。
该方法是否应该将路径作为其参数?fileExistsAtPath:(NSFileManager)
它看起来就像一个文件名作为路径:
例如,/home/file.txt是一个文件,而/家/是路径。这个方法看起来像是以前者为参数。
“路径”与“文件”的区别不是Unix中常见的。路径的最终元素是否为文件不影响它是路径的事实。 “/home/file.txt”看起来像一个绝对的文件路径(尽管它实际上可能是一个欺骗性命名的目录)。 “/ home /”是绝对目录路径。两者都是路径。 (所以是“foo/bar” - 你会在你的术语中称为“文件”还是“路径”?如果没有检查该路径中的对象,我们无法知道它是否指定目录或文件。)Apple在正常意义上使用该术语。
是的,它需要一个字符串,是一个路径 - 看到documentation:
参数
路径
一个文件或目录的路径。如果路径以代字号开始(~
),则必须先用stringByExpandingTildeInPath
扩展它,否则此方法返回NO
。
注意/home/file.txt
是路径,就像/home/
。但前者不是目录,而后者是。
它看起来像一个文件名而不是一个路径 – 2010-07-29 23:47:08
你为什么会这样认为它的参数甚至被命名为'path' – 2010-07-29 23:48:20
参数是命名路径,但我正在查看的代码正在传递文件名 – 2010-07-29 23:50:23
如果您想查找文件和文件夹之间的区别,请参阅-fileExistsAtPath:isDirectory:。
用法:
BOOL isDirectory;
if ([self fileExistsAtPath:@"/Users/me/Subfolder" isDirectory:&isDirectory] && isDirectory)
{
// Exists and is a directory. Isn't that neat?
}
按照惯例,方法参数的名称告诉你什么,它预计通过将输入的最后一次。在这种情况下,它是file_at_Path,所以它需要一个路径。相比之下,像path_for_fileName这样的东西会期望一个包含文件名的字符串,并且会返回一个路径。 – TechZen 2010-07-29 23:35:49
为什么downvote?代码示例显示正在传递文件名。 – 2010-07-29 23:50:59
不是这里的低调选民,但它可能是由于主题和第一句话的结合。你应该小心地用更精确的主题来提出更完整的问题,等等。 – 2010-07-30 00:56:32