这个方法应该以路径作为参数吗?
看起来它需要一个文件名作为路径:
例如,/ home / file.txt是一个文件,而/ home /是一个路径。这个方法看起来像前者作为参数。
答案 0 :(得分:7)
你对“路径”与“文件”的区别并不是Unix中常见的。路径的最终元素是否是文件不会影响它是路径的事实。 “/home/file.txt”看起来像一个绝对的文件路径(尽管它实际上可能是一个看似命名的目录)。 “/ home /”是绝对目录路径。两者都是路径。 (那么是“foo / bar” - 你会在你的术语中称之为“文件”或“路径”吗?如果不检查该路径上的对象,我们就无法知道它是否命名目录或文件。)Apple正在使用正常意义上的术语。
答案 1 :(得分:2)
是的,它需要一个字符串作为路径 - 请参阅documentation:
<强>参数强>
路径
文件或目录的路径。如果路径以波形符号(~
)开头,则必须首先使用stringByExpandingTildeInPath
进行展开,否则此方法将返回NO
。
请注意,/home/file.txt
是路径,就像/home/
一样。前者不是目录,而后者是。
答案 2 :(得分:2)
如果您想查找文件和文件夹之间的区别,请参阅-fileExistsAtPath:isDirectory:。
用法:
BOOL isDirectory;
if ([self fileExistsAtPath:@"/Users/me/Subfolder" isDirectory:&isDirectory] && isDirectory)
{
// Exists and is a directory. Isn't that neat?
}