在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。
NSFileManager
*fileManager
=
[
NSFileManager defaultManager
];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths =NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES );
NSString *documentDir = [documentPaths objectAtIndex :0 ];
NSError *error = nil;
NSArray *fileList = [ [ NSArray alloc ] init ];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath :documentDir error :&error ];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths =NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES );
NSString *documentDir = [documentPaths objectAtIndex :0 ];
NSError *error = nil;
NSArray *fileList = [ [ NSArray alloc ] init ];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath :documentDir error :&error ];
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
NSMutableArray
*dirArray
=
[
[
NSMutableArray alloc
] init
];
BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
for ( NSString *file in fileList ) {
NSString *path = [documentDir stringByAppendingPathComponent :file ];
[fileManager fileExistsAtPath :path isDirectory : ( &isDir ) ];
if (isDir ) {
[dirArray addObject :file ];
}
isDir = NO;
}
NSLog ( @ "Every Thing in the dir:%@",fileList );
NSLog ( @ "All folders:%@",dirArray );
BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
for ( NSString *file in fileList ) {
NSString *path = [documentDir stringByAppendingPathComponent :file ];
[fileManager fileExistsAtPath :path isDirectory : ( &isDir ) ];
if (isDir ) {
[dirArray addObject :file ];
}
isDir = NO;
}
NSLog ( @ "Every Thing in the dir:%@",fileList );
NSLog ( @ "All folders:%@",dirArray );