使用NSFileManager枚举目录种的内容(遍历目录)

需要获得目录的内容列表,使用enumeratorAtPath:方法或者directoryC ontentsAtPath:方法,可以完成枚举过程。

如果使用第一种enumeratorAtPath:方法,一次可以枚举指定目录中的每个文件。默认情况下,如果其中一个文件为目录,那么也会递归枚举它的内容。在这个过程中,通过向枚举对象发送一条skipDescendants消息,可以动态地阻止递归过程,从而不再枚举目录中的内容。

对于directoryContentsAtPath:方法,使用这个方法,可以枚举指定目录的内容,并在一个数组中返回文件列表。如果这个目录中的任何文件本身是个目录,这个方法并不递归枚举它的内容。

代码如下:

  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[])
  3. {
  4. @autoreleasepool {
  5. NSString *path;
  6. NSFileManager *fm;
  7. NSDirectoryEnumerator *dirEnum;
  8. NSArray *dirArray;
  9. fm = [NSFileManager defaultManager];
  10. //获取当前的工作目录的路径
  11. path = [fm currentDirectoryPath];
  12. //遍历这个目录的第一种方法:(深度遍历,会递归枚举它的内容)
  13. dirEnum = [fm enumeratorAtPath:path];
  14. NSLog(@"1.Contents of %@:",path);
  15. while ((path = [dirEnum nextObject]) != nil)
  16. {
  17. NSLog(@"%@",path);
  18. }
  19. //遍历目录的另一种方法:(不递归枚举文件夹种的内容)
  20. dirArray = [fm directoryContentsAtPath:[fm currentDirectoryPath]];
  21. NSLog(@"2.Contents using directoryContentsAtPath:");
  22. for(path in dirArray)
  23. NSLog(@"%@",path);
  24. }
  25. return 0;
  26. }
时间: 2024-10-31 15:57:32

使用NSFileManager枚举目录种的内容(遍历目录)的相关文章

linux目录操作及递归遍历目录

目录相关函数介绍 //mkdir 函数创建目录 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mode_t mode); //rmdir 删除目录 #include <unistd.h> int rmdir(const char *pathname); //dopendir/fdopendir  //打开目录 DIR是一个结构体,是一个内部结构,用来存储读取目录的

IO-文件 遍历 目录 删除【工具】

文件遍历器 获取指定目录及其子目录下的指定格式文件的文件 FileUtils.listDirFiles(path, null,true/false); 1 FileUtils.listDirFiles(path, null,true/false); FileUtils.listDirFiles(path, new MyFilenameFilter(".java", 1024), false); x 1 FileUtils.listDirFiles(path, new MyFilenam

[python小记]使用lxml修改xml文件,并遍历目录

这次的目的是遍历目录,把目标文件及相应的目录信息更新到xml文件中.在经过痛苦的摸索之后,从python自带的ElementTree投奔向了lxml.而弃用自带的ElementTree的原因就是,namespace. XML命名空间 作用是为避免元素命名冲突,当出现命名冲突的时候,可以使用前缀来避免命名冲突,就如: <h:table> <h:tr> <h:td>App Store</h:td> <h:td>Google Play</h:td

Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。

题目: 遍历出aaa文件夹下的文件 首先分析思路: 1.首先判断这个文件夹是否为文件,通过isFile()函数可以判断是否为文件. 2.然后通过isDirectory判断是否为目录. 3.如果是目录就使用递归遍历目录 代码如下: 1 import java.io.File; 2 3 public class ZuoYe { 4 public static void main(String[] args) { 5 //创建file对象 6 File f=new File("d://新建文件夹&qu

php遍历指定目录中的内容2

输出文件是否可读写,可执行,并同时输出创建时间,修改时间,访问时间 //2.遍历指定目录中的内容 if ($arr['file']) {     $arrbyte = array("Byte","KB","MB","GB","TB","EB");     foreach ($arr['file'] as $val) {         //filetype函数返回指定文件或目录的类型  

PHP遍历目录四种方法

学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 */ $obj = new DirectoryIterator('E:\wamp\bin\php\php5.3.3'); foreach ($obj as $file){ echo $file->getFileName(); echo "<br/>"; } /* * 方

遍历 目录的几种有效办法

这一两个月来到新公司 刚好赶上项目进度,加班有点多,忘了记录点什么..刚刚商品上传扫描 这块用上了之前研究的 目录相关技巧的 知识,很开心:当然下一期的 迭代器的讲解更有意思 ^-^: 传统扫描目录(我基本弃用了): /********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 ***********************/ function tree($directory) { $mydir = dir($directory); echo "<

php遍历目录下文件,并读取内容

<?php echo "<h2>遍历目录下文件,并读取内容</h2><br>\n"; function listDir($dir) { if(is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if((is_dir($dir."/".$file)) && $file!=".&quo

PHP遍历目录/文件的两种方法

1.使用$obj = dir($dir)返回目录对象$obj,然后使用其$obj->read()方法遍历: 1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: Zhang He 5 * Date: 2015/6/8 6 * Time: 12:21 7 */ 8 function traverseDir( $filedir ) { 9 //打开目录 10 $dir = @dir($filedir); 11 //列出目录中的文件 12 while ((