IOS 从Resource文件夹下Copy文件到沙盒

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.title =  @"拷贝文件到Sandbox";
    
    //文件类型
    NSString * docPath = [[NSBundle mainBundle] pathForResource:@"save1" ofType:@"dat"];
    
    // 沙盒Documents目录
//    NSString * appDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    // 沙盒Library目录
    NSString * appDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    //appLib  Library/Caches目录
    NSString *appLib = [appDir stringByAppendingString:@"/Caches"];
    
    BOOL filesPresent = [self copyMissingFile:docPath toPath:appLib];
    if (filesPresent) {
        NSLog(@"OK");
    }
    else
    {
        NSLog(@"NO");
    }
    
    // 创建文件夹
    NSString *createDir =  [NSHomeDirectory() stringByAppendingString:@"/test"];
    [self createFolder:createDir];
    
    // 把文件拷贝到Test目录
    BOOL filesPresent1 = [self copyMissingFile:docPath toPath:createDir];
    if (filesPresent1) {
        NSLog(@"OK");
    }
    else
    {
        NSLog(@"NO");
    }


}

/**
 *    @brief    把Resource文件夹下的save1.dat拷贝到沙盒
 *
 *    @param     sourcePath     Resource文件路径
 *    @param     toPath     把文件拷贝到XXX文件夹
 *
 *    @return    BOOL
 */
- (BOOL)copyMissingFile:(NSString *)sourcePath toPath:(NSString *)toPath
{
    BOOL retVal = YES; // If the file already exists, we'll return success…
    NSString * finalLocation = [toPath stringByAppendingPathComponent:[sourcePath lastPathComponent]];
    if (![[NSFileManager defaultManager] fileExistsAtPath:finalLocation])
    {
        retVal = [[NSFileManager defaultManager] copyItemAtPath:sourcePath toPath:finalLocation error:NULL];
    }
    return retVal;
}

/**
 *    @brief    创建文件夹
 *
 *    @param     createDir     创建文件夹路径
 */
- (void)createFolder:(NSString *)createDir
{
    BOOL isDir = NO;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL existed = [fileManager fileExistsAtPath:createDir isDirectory:&isDir];
    if ( !(isDir == YES && existed == YES) )
    {
        [fileManager createDirectoryAtPath:createDir withIntermediateDirectories:YES attributes:nil error:nil];
    }
}
原文地址:https://www.cnblogs.com/joesen/p/3356977.html