[Cocoa]_[初级]_[选择文件目录,在当前目录中添加所需的文件到程序中]

30 篇文章 0 订阅
//弹出选择目录的对话框
- (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];
   
}



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值