//弹出选择目录的对话框
- (IBAction)onAddFolder:(id)sender
{
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setMessage:@"Please select a source folder."];
[panel setCanChooseDirectories:YES];
[panel setCanCreateDirectories:YES];
[panel setCanChooseFiles:NO];
[panel beginSheetModalForWindow:[NSApp mainWindow] completionHandler:^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton)
{
NSURL* url = [panel URL];
[self doAddFolderTask:url];
}
}
}
//对目录里面的所需的文件进行提取
-(void) doAddFolderTask:(NSURL*) userinfo
{
NSMutableArray* array = [NSMutableArray new];
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSURL *url = userinfo;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *pros = [NSArray arrayWithObjects:NSURLNameKey,nil];
NSArray *files = [fileManager contentsOfDirectoryAtURL:url includingPropertiesForKeys:pros options:NSDirectoryEnumerationSkipsHiddenFiles error:nil];
for(NSURL* fileURL in files)
{
NSAutoreleasePool *pool2 = [NSAutoreleasePool new];
NSRange range = [[fileURL path] rangeOfString:@"." options:NSBackwardsSearch];
if (range.location != NSNotFound)
{
NSString* postfix = [[[fileURL path] substringFromIndex:range.location] lowercaseString];
NSString *temp = nil;
if ([@".bmp" rangeOfString:postfix].location != NSNotFound)//把图片文件提取出来放入数组中,如后缀是bmp的文件。
{
temp =@".bmp";
if(temp.length() == postfix.length()) //加入判断,确保一致性,更能精确得出所需的文件,不然如需要后缀是tiff,如果目录中存在后缀
{ //则也会提取出来存入数组中。如下同理
[array addObject:fileURL];
}
}
if ([@".pdf" rangeOfString:postfix].location!= NSNotFound)//把后缀是pdf的文件提出出来存数组中
{
[array addObject:fileURL];
}
if ([@".txt" rangeOfString:postfix].location!= NSNotFound)//文本文件
{
[array addObject:fileURL];
}
/...... 根据自己需要添加要提取的文件后缀
}
[pool2 drain];
}
[pool drain];
}