#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
#if 0
// 从面向对象的角度来分析这个问题
// 1.因为目的是扫描指定目录下的所有文件信息,所以需要一个文件管理者的对象
NSFileManager *fileManager = nil;
fileManager = [NSFileManager defaultManager]; //得到文件管理者对象
// 2.需要知道如何获取home目录
NSString *path = [@"~" stringByExpandingTildeInPath];
// 3.如何遍历目录下的所有文件(构建文件枚举对象)
NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:path];
// 4.得到目录下的文件后, 判断文件的后缀是不是.c文件
// 5.需要构建一个可变数组,用于存放查找到的.c文件。如果是.c文件,就放到数组里
NSMutableArray *arrayFiles = [NSMutableArray arrayWithCapacity:20];
#if 0
NSString *fileName = [dirEnum nextObject];
while (fileName != nil) {
if ([[fileName pathExtension] isEqualToString:@"c"])
{
[arrayFile addObject:fileName];
}
fileName = [dirEnum nextObject];
}
#endif
NSString *fileName = nil;
while ((fileName = [dirEnum nextObject]) != nil)
{
if ([[fileName pathExtension] isEqualToString:@"c"])
{
[arrayFiles addObject:fileName];
}
}
// 6.遍历数组的所有元素, 然后将其打印到屏幕上
for (NSString *name in arrayFiles) {
NSLog(@"%@",name);
}
#endif
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *home;
home = [@"~" stringByExpandingTildeInPath];
NSMutableArray *files = [NSMutableArray arrayWithCapacity:20];
// 这里的快速枚举相当于
// NSDirectoryEnumerator *dicEnumber = [fileManager enumeratorAtPath:home];
// NSString *fileName = [dicEnumber nextObject];
for (NSString *fileName in [fileManager enumeratorAtPath:home]) {
if ([[fileName pathExtension] isEqualToString:@"c"]) {
[files addObject:fileName];
}
}
for (NSString *name in files) {
NSLog(@"%@",name);
}
return 0;
}