美文网首页
NSFileManager NSFileHandle

NSFileManager NSFileHandle

作者: 八匹马_BPM | 来源:发表于2019-02-27 16:18 被阅读0次

判断文件是否存在

// 沙盒文件路径

    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"QQ_V5.4.0.dmg"];

    NSLog(@"File downloaded to: %@",path);

   // 创建一个空的文件到沙盒中

    NSFileManager *manager = [NSFileManager defaultManager];

    if(![manager fileExistsAtPath:path]) {

        // 如果没有下载文件的话,就创建一个文件。如果有下载文件的话,则不用重新创建(不然会覆盖掉之前的文件)

        [manager createFileAtPath:path contents:nil attributes:nil];

//创建文件夹

// [manager createDictionaryAtPath:path .......];

    }

// 创建文件句柄   从内存向文件目录中写入数据

    self.fileHandle = [NSFileHandle fileHandleForWritingAtPath:path];

从path路径中读取数据到内存

self.fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];

// 指定数据的写入位置 -- 文件内容的最后面

    [self.fileHandle seekToEndOfFile];

    // 向沙盒写入数据

    [self.fileHandle writeData:data];

// 3. 设置HTTP请求头中的Range  断点下载上传最核心的部分

self.currentLength当前已经下载或者上传的文件长度

        NSString *range = [NSString stringWithFormat:@"bytes=%ld-", self.currentLength];

        [request setValue:range forHTTPHeaderField:@"Range"];

计算文件长度的方法

if([fileManager fileExistsAtPath:path]) {

        NSError*error =nil;

        NSDictionary*fileDict = [fileManager attributesOfItemAtPath:path error:&error];

        if(!error && fileDict) {

            fileLength = [fileDict fileSize];

        }

    }

相关文章

网友评论

      本文标题:NSFileManager NSFileHandle

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