从mianbundle拷贝文件到sandbox中

这儿有段代码,教大家如何拷贝文件。

 

  1. - (void) copySampleFilesToMyDocumentsFolder {  
  2.     NSError *error;  
  3.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  4.       
  5.     NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];  
  6.       
  7.     NSArray *dirContents = [fileManager contentsOfDirectoryAtPath: bundleRoot error: &error];  
  8.     NSArray *onlyPdf = [dirContents filteredArrayUsingPredicate: [NSPredicate predicateWithFormat: @"self ENDSWITH '.jpg'"]];  
  9.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  10.     NSString *documentsDir = [paths objectAtIndex: 0];  
  11.       
  12.     for (int i = 0; i < onlyPdf.count; i++) {  
  13.         NSString *pdfName = [onlyPdf objectAtIndex: i];  
  14.           
  15.         NSString *docPdfFilePath = [documentsDir stringByAppendingPathComponent: pdfName];  
  16.           
  17.         //Using NSFileManager we can perform many file system operations.   
  18.         BOOL success = [fileManager fileExistsAtPath: docPdfFilePath];  
  19.           
  20.         if (!success) {  
  21.             NSString *samplePdfFile  = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: pdfName];  
  22.               
  23.             success = [fileManager copyItemAtPath: samplePdfFile toPath: docPdfFilePath error: &error];  
  24.               
  25.             if (!success){}  
  26.                 //              NSAssert1(0, @"Failed to copy file '%@'.", [error localizedDescription]);   
  27.                 //debugLog(@"Failed to copy %@ file, error %@", pdfName, [error localizedDescription]);   
  28.             else {  
  29.                 //debugLog(@"File copied %@ OK", pdfName);   
  30.             }  
  31.         }  
  32.         else {  
  33.             //debugLog(@"File exits %@, skip copy", pdfName);   
  34.         }  
  35.     }  
  36. }  

 

如果希望列出在应用包的图片目录中所有以jpg为文件后缀名的JPEG图片,需要用到pathsForResourcesOfType:inDirectory:方法:

NSArray *birds = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg" inDirectory:@"birdImages"];

这个方法返回路径名的数组。如果JPEG并未储存在应用的子目录中,可以指定@""作为inDirectory:参数。

 

posted @ 2012-12-17 13:47  gagag  阅读(491)  评论(0编辑  收藏  举报