代码之家  ›  专栏  ›  技术社区  ›  rob5408

目标C路径下的目录

  •  1
  • rob5408  · 技术社区  · 14 年前

    我正在使用ukkqueue监视目录中文件的更改。但有时在主目录下会有更多的目录,它不会收集对这些文件夹中的文件所做的更改。因此,我还想注册那些要监视的路径。但是我不容易得到文件夹列表。我可以用……得到所有东西的清单。

    [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:@"/Users/rob5408/Documents" error:&error];
    

    …但是我如何进一步筛选以获得目录呢?我看着…

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

    …但是看起来很乏味,布尔指针真的把我甩了。有什么想法吗?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Peter Hosey    13 年前

    …但是我如何进一步筛选以获得目录呢?我看着…

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

    …但是看起来很乏味,布尔指针真的把我甩了。

    有点乏味,但不太难使用:

    BOOL isDir;
    if ([mgr fileExistsAtPath:path isDirectory:&isDir] && isDir) {
         //It's a directory
    }
    

    始终可以使函数(或nsFileManager上的类别,只要您适当地为方法选择器命名)包装此方法:

    if (R5408_ObjectAtPathIsDirectory(path)) {
         //It's a directory
    }
    

    请注意,如果 不是 一个目录,这并不意味着它是一个常规文件;另一个可能的可能性(还有其他可能性)是它是一个符号链接。相反,别名将显示为常规文件,但您可能对原始文件比别名更感兴趣。