迭代具有嵌套文件夹的文件夹中的文件 - Cocoa
我需要访问文件夹中的每个文件,包括嵌套文件夹中存在的文件。示例文件夹可能如下所示。
animals/
-k.txt
-d.jpg
cat/
-r.txt
-z.jpg
tiger/
-a.jpg
-p.pdf
dog/
-n.txt
-f.jpg
-p.pdf
假设我想对“动物”中不是文件夹的每个文件运行一个进程。迭代文件夹“animals”及其所有子文件夹以访问每个文件的最佳方法是什么?
谢谢。
I need to access every file in a folder, including file that exist within nested folders. An example folder might look like this.
animals/
-k.txt
-d.jpg
cat/
-r.txt
-z.jpg
tiger/
-a.jpg
-p.pdf
dog/
-n.txt
-f.jpg
-p.pdf
Say that I wanted to run a process on every file within "animals" that isn't folder. What would be the best way to iterate through the folder "animals" and all of its subfolders to access every file?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用
NSDirectoryEnumerator
递归枚举你想要的目录下的文件和目录,并要求它告诉你它是文件还是目录。以下内容基于-[NSFileManager enumeratorAtURL:includePropertiesForKeys:options:errorHandler:]
文档中列出的示例:Use
NSDirectoryEnumerator
to recursively enumerate files and directories under the directory you want, and ask it to tell you whether it is a file or directory. The following is based on the example listed at the documentation for-[NSFileManager enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:]
:也许你可以使用这样的东西:
Maybe you can use something like this:
这是一个快速版本:
Here is a swift version:
这是使用
-subpathsOfDirectoryAtPath:rootPath
,带有文件 URL 和现代 Objective-C可空性铃声 &口哨声。……在 Swift 中也是如此:
Here's a solution using
-subpathsOfDirectoryAtPath:rootPath
, with file URLs and modern Objective-C nullability bells & whistles.… and the same in Swift:
这段代码对我有用。
This code worked for me.
在 Swift 中我们可以尝试以下操作。
参考
https://developer.apple.com/documentation/foundation/filemanager/1408726-枚举器
In Swift we can try the following.
Reference
https://developer.apple.com/documentation/foundation/filemanager/1408726-enumerator