macOS 打印/迭代来自特定安装卷的所有文件

macOS print / iterate all files from specific mount volume

我的objective是遍历属于特定文件系统的所有文件,并对每个文件应用回调函数。

目前,我正在使用递归 C 函数来执行此操作,该函数打印特定文件夹中的所有文件并在子文件夹上递归调用。

不幸的是,我从未设法达到 getmntinfo 给出的此挂载包含的文件总数,这可能是因为有些数据常规文件还没有准备好(意味着软链接、管道、套接字、等..)

是否有任何高级 objective-C 框架可从特定挂载点迭代所有数据文件?

我理想的方法是按 inode id 升序迭代文件,而不是根据它们在文件夹层次结构中的位置。

我发现我可以使用 enumeratorAtURL 创建文件枚举器但是如果这个 URL/Path 包含挂载到远程文件系统的子文件夹怎么办......我只对包含挂载感兴趣文件。

我建议您查看 C 级 fts(3) 函数 (Apple's documentation)。这些可以限于单个设备并提供确定特殊文件所需的信息。从 Objective-C 使用它们很简单。

HTH