美文网首页
IOS 从Resource文件夹下Copy文件到沙盒

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

作者: ChenL | 来源:发表于2020-10-10 13:37 被阅读0次
- (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];
    }
}

相关文章

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

  • iOS把Resource文件夹下的文件拷贝到沙盒

    前言: 我们Xcode项目工程里面有一个文件,以model-o.scnassets.zip为例,想复制到沙盒文件中...

  • NSFileManager 管理文件

    删除沙盒目录某文件夹下面的文件

  • 沙盒

    数据库文件放在沙盒文件夹下的Documents文件夹下 沙盒里边有三个文件夹: Documents(默认为空) L...

  • 沙盒

    一、iOS沙盒机制介绍(1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 ...

  • iOS本地沙盒文件读取浏览下载,日志读取下载

    传统沙盒文件读取方式 谈到iOS本地沙盒文件读取下载,给人的初步印象是苹果对应用下面的沙盒文件管理严格,只能通过已...

  • 沙盒机制

    IOS数据存储之文件沙盒存储

  • 本地持久化存储

    一、沙盒机制 沙盒是什么 每个iOS应用都有属于自己的应用沙盒(沙盒就是文件系统目录),与其他文件系统隔离,每个应...

  • iOS本地数据存取

    应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒...

  • iOS-数据持久化存储

    一. 沙盒 每个iOS应用都有⾃己的应⽤沙盒(应用沙盒就是文件系统目录)与其他文件系统隔离,应⽤必须待在⾃己的沙盒...

网友评论

      本文标题:IOS 从Resource文件夹下Copy文件到沙盒

      本文链接:https://www.haomeiwen.com/subject/sgfbzhtx.html