使用NSFileManager枚举目录种的内容(遍历目录)
2015-04-10 10:17
246 查看
需要获得目录的内容列表,使用enumeratorAtPath:方法或者directoryC ontentsAtPath:方法,可以完成枚举过程。
如果使用第一种enumeratorAtPath:方法,一次可以枚举指定目录中的每个文件。默认情况下,如果其中一个文件为目录,那么也会递归枚举它的内容。在这个过程中,通过向枚举对象发送一条skipDescendants消息,可以动态地阻止递归过程,从而不再枚举目录中的内容。
对于directoryContentsAtPath:方法,使用这个方法,可以枚举指定目录的内容,并在一个数组中返回文件列表。如果这个目录中的任何文件本身是个目录,这个方法并不递归枚举它的内容。
代码如下:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *path;
NSFileManager *fm;
NSDirectoryEnumerator *dirEnum;
NSArray *dirArray;
fm = [NSFileManager defaultManager];
//获取当前的工作目录的路径
path = [fm currentDirectoryPath];
//遍历这个目录的第一种方法:(深度遍历,会递归枚举它的内容)
dirEnum = [fm enumeratorAtPath:path];
NSLog(@"1.Contents of %@:",path);
while ((path = [dirEnum nextObject]) != nil)
{
NSLog(@"%@",path);
}
//遍历目录的另一种方法:(不递归枚举文件夹种的内容)
dirArray = [fm directoryContentsAtPath:[fm currentDirectoryPath]];
NSLog(@"2.Contents using directoryContentsAtPath:");
for(path in dirArray)
NSLog(@"%@",path);
}
return 0;
}
如果使用第一种enumeratorAtPath:方法,一次可以枚举指定目录中的每个文件。默认情况下,如果其中一个文件为目录,那么也会递归枚举它的内容。在这个过程中,通过向枚举对象发送一条skipDescendants消息,可以动态地阻止递归过程,从而不再枚举目录中的内容。
对于directoryContentsAtPath:方法,使用这个方法,可以枚举指定目录的内容,并在一个数组中返回文件列表。如果这个目录中的任何文件本身是个目录,这个方法并不递归枚举它的内容。
代码如下:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *path;
NSFileManager *fm;
NSDirectoryEnumerator *dirEnum;
NSArray *dirArray;
fm = [NSFileManager defaultManager];
//获取当前的工作目录的路径
path = [fm currentDirectoryPath];
//遍历这个目录的第一种方法:(深度遍历,会递归枚举它的内容)
dirEnum = [fm enumeratorAtPath:path];
NSLog(@"1.Contents of %@:",path);
while ((path = [dirEnum nextObject]) != nil)
{
NSLog(@"%@",path);
}
//遍历目录的另一种方法:(不递归枚举文件夹种的内容)
dirArray = [fm directoryContentsAtPath:[fm currentDirectoryPath]];
NSLog(@"2.Contents using directoryContentsAtPath:");
for(path in dirArray)
NSLog(@"%@",path);
}
return 0;
}
相关文章推荐
- 使用NSFileManager枚举目录种的内容(遍历目录)
- 使用NSFileManager枚举目录种的内容(遍历目录)
- 使用NSFileManager枚举目录中的内容(遍历目录)
- 使用NSFileManager枚举目录种的内容(遍历目录)
- 使用NSFileManager枚举目录种的内容(遍历目录)
- 使用boost中的filesystem类库遍历某个目录所有的文件
- Powershell 递归遍历目录下的文件内容
- 如何使用批处理,遍历指定目录下的文件。
- 如何遍历并删除Dictionary集合内容——学会使用 KeyValuePair
- C#遍历目录和文件(使用Linq)
- C#使用API函数来遍历文件和目录(转)
- C#使用WIN32API来高效率的遍历文件和目录(转)
- 定时器的使用;回调函数的使用;目录遍历算法;硬盘信息获取;
- 如何使用FTP下载、上载文件和如何列出目录内容。
- 使用debian包递归安装整个目录下的内容;
- 一个遍历目录下包含某些内容的所有文件的类
- 使用流加载和保存HTML内容&遍历html的信息存入一个ini文件&使用MSHTML分析HTML代码
- C#使用WIN32API来遍历文件和目录
- C#中使用WIN32API来遍历文件和目录
- 使用Lucene 3.3.0的结构遍历TokenStream的内容.