[iOS功能]- iOS对沙盒Document操作

116 阅读1分钟

在Document下创建自定义文件夹

#pragma mark - 创建自定义文件夹
- (void)createCustomFileAtName:(NSString *)FileName{
   
    //获取Document文件
    NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString * locationImageData = [docsdir stringByAppendingPathComponent:FileName];//将需要创建的串拼接到后面
    
    NSLog(@"rarFilePath路径: %@", locationImageData);
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isDir = NO;
    // fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
    BOOL existed = [fileManager fileExistsAtPath:locationImageData isDirectory:&isDir];
    if ( !(isDir == YES && existed == YES) ) { // 如果文件夹不存在
        /* createDirectoryAtPath:withIntermediateDirectories:attributes:error:
         * 参数1:创建的文件夹的路径
         * 参数2:是否创建媒介的布尔值,一般为YES
         * 参数3: 属性,没有就置为nil
         * 参数4: 错误信息
         */
        [fileManager createDirectoryAtPath:locationImageData withIntermediateDirectories:YES attributes:nil error:nil];
    }
}

把图片存到自定义文件夹下 返回路径

#pragma mark - 截取百度地图 截图
- (NSString *)saveBaiDuMapImage
{
    [_mapView setZoomLevel:17];
    CGRect     rect               = CGRectMake(0,0, self.frame.size.width, self.frame.size.width);// 这里设置想要截图的区域
    NSData   * imageViewData      = UIImagePNGRepresentation([_mapView takeSnapshot:rect]);  // 通过百度地图自带工具截图
    // 获得此程序的沙盒路径
    NSArray  * patchs             = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // 获取Documents路径下的指定路径
    NSString * documentsDirectory = [patchs objectAtIndex:0];
    // 在Documents路径下创建自定义文件夹
    NSString * fileDirectory      = [documentsDirectory stringByAppendingPathComponent:@"locationimageData"];
    
    NSString * pictureName        = [NSString stringWithFormat:@"baiduMapPic_%d.png",_pic_Num];
    NSString * savedImagePath     = [fileDirectory stringByAppendingPathComponent:pictureName];
    
    NSLog(@"截屏路径打印: %@", savedImagePath);
    //保存照片到沙盒目录
    [imageViewData writeToFile:savedImagePath atomically:YES];
    return savedImagePath;

}
#pragma mark - 获取locationimageData文件夹下所有文件
- (NSArray *)getNSDocumentDirectoryFileNames
{
    // 获得此程序的沙盒路径
    NSArray *patchs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // 获取Documents路径下的指定路径
    NSString *documentsDirectory = [patchs objectAtIndex:0];
    NSString *fileDirectory = [documentsDirectory stringByAppendingPathComponent:@"locationimageData"];

    NSArray * files = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:fileDirectory error:nil];

    return files;
}