1. 程式人生 > >iOS開發——遍歷目錄,獲取檔名列表

iOS開發——遍歷目錄,獲取檔名列表

       實用工具類的積累是任何一個開發人員必不可少的財富。

       今天的任務是遍歷Documents目錄,獲得所有pdf電子書的書名,即檔名列表。這種需求很常見,於是乎,不如來搗鼓一個方法:

[cpp] view plain copy  print?
  1. /** 
  2.  *  @brief  獲得指定目錄下,指定字尾名的檔案列表 
  3.  * 
  4.  *  @param  type    檔案字尾名 
  5.  *  @param  dirPath     指定目錄 
  6.  * 
  7.  *  @return 檔名列表 
  8.  */
  9. +(NSArray *) getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath;  

方法的實現: [cpp] view plain copy  print?
  1. +(NSArray *)getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath  
  2. {  
  3.     NSMutableArray *filenamelist = [NSMutableArray arrayWithCapacity:10];  
  4.     NSArray *tmplist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirPath error:nil];  
  5.     for (NSString *filename in tmplist) {  
  6.         NSString *fullpath = [dirPath stringByAppendingPathComponent:filename];  
  7.         if ([self isFileExistAtPath:fullpath]) {  
  8.             if ([[filename pathExtension] isEqualToString:type]) {  
  9.                 [filenamelist  addObject:filename];  
  10.             }  
  11.         }  
  12.     }  
  13.     return filenamelist;  
  14. }  
  15. +(BOOL)isFileExistAtPath:(NSString*)fileFullPath {  
  16.     BOOL isExist = NO;  
  17.     isExist = [[NSFileManager defaultManager] fileExistsAtPath:fileFullPath];  
  18.     return isExist;  
  19. }  
呼叫來驗證一下: [cpp] view plain copy  print?
  1. NSArray *filename = [WQFileManager getFilenamelistOfType:@"pdf"
  2.                                              fromDirPath:[WQPathUtilities documentsDirectory]];  
  3. NSInteger count = filename.count;  
  4. NSLog(@"I have %d books in DocumentsDir",count);  
  5. for (int i = 0; i<count; i++) {  
  6.     NSLog(@"NO.%d is %@",i+1,[filename objectAtIndex:i]);  
  7. }  

OK,完成任務!