1. 程式人生 > >ios沙盒檔案操作

ios沙盒檔案操作

獲取沙盒目錄

//獲取沙盒目錄
- (NSString *)getHomePath{
    NSString *homePath =NSHomeDirectory();
    return homePath;
}
//獲取Document目錄
- (NSString *)getDocumentPath{
    NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = [docPaths lastObject];
    return documentPath;
}
//獲取library目錄
- (NSString *)getLibraryPath{
    NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libraryPath = [libPaths lastObject];
    return libraryPath;
}
//獲取tmb目錄
- (NSString *)getTmbPath{
    NSString *tmpPath = NSTemporaryDirectory();
    return tmpPath;
}

獲取string檔案目錄

//獲取string路徑成分
- (void)parsePath{
    NSString *path = @"/data/Containers/Data/Application/test.png";
    NSArray *array = [path pathComponents];
    //提取路徑最後一個組成部分
    NSString *name = [path lastPathComponent];
    //刪除路徑最後一個組成部分
    NSString *string = [path stringByDeletingLastPathComponent];
    //追加路徑最後一個組成部分
    NSString *addstring = [path stringByAppendingPathComponent:@"name.txt"];
}

NSData和NString和image之間的相互轉換

- (void)dataChange:(NSData *)data{
    NSString *astring = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSData *aData = [astring dataUsingEncoding:NSUTF8StringEncoding];
    UIImage *image = [UIImage imageWithData:aData];
    NSData *data2 = UIImagePNGRepresentation(image);
}

建立資料夾

-(void)createFolder{
    NSString *docPath = [self getDocumentPath];
    NSString *testPath = [docPath stringByAppendingPathComponent:@"haha"];
    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL ret = [manager createDirectoryAtPath:testPath withIntermediateDirectories:YES attributes:nil error:nil];
    if (ret) {
        NSLog(@"資料夾建立成功");
    }else{
        NSLog(@"資料夾建立失敗");
    }
}

建立檔案

- (void)createFile{
    NSString *docPath = [self getDocumentPath];
    NSString *testPath = [docPath stringByAppendingPathComponent:@"抖詞"];
    NSString *filePath = [testPath stringByAppendingPathComponent:@"我的筆記"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL ret = [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
    if (ret) {
        NSLog(@"建立成功");
    }else{
        NSLog(@"建立失敗");
    }
}

建立檔案內容

-(void)writeFile{
    NSString *docPath = [self getDocumentPath];
    NSString *testPath = [docPath stringByAppendingPathComponent:@"抖詞"];
    NSString *filePath = [testPath stringByAppendingPathComponent:@"我的筆記"];
    NSString *content = @"這是我所新增的筆記";
    BOOL ret = [content writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    if (ret) {
        NSLog(@"寫入檔案成功");
    }else{
        NSLog(@"寫入檔案失敗");
    }
}

新增檔案內容


//判斷檔案是否存在
- (BOOL)fileExist:(NSString *)filePath{
    NSFileManager *manager = [NSFileManager defaultManager];
    if ([manager fileExistsAtPath:filePath]) {
        return YES;
    }else{
        return NO;
    }
}
//追加內容
- (void)addFile{
    NSString *docPath = [self getDocumentPath];
    NSString *testPath = [docPath stringByAppendingPathComponent:@"慕課網"];
    NSString *filePath = [testPath stringByAppendingPathComponent:@"我的筆記.txt"];
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];//開啟檔案準備更新
    [fileHandle seekToEndOfFile];//將節點跳到檔案末尾
    NSString *string = @"這是我所新增的筆記";
    NSData *stringData = [string dataUsingEncoding:NSUTF8StringEncoding];
    [fileHandle writeData:stringData];
    [fileHandle closeFile];//關閉檔案
}

刪除檔案


- (void)deleteFile {
    NSString *docPath = [self getDocumentsPath];
    NSString *testPath = [docPath stringByAppendingPathComponent:@"抖音"];
    NSString *filePath = [testPath stringByAppendingPathComponent:@"我的筆記.txt"];
    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL ret = [self fileExist:filePath];
    if (ret) {
        BOOL ret2  = [manager removeItemAtPath:filePath error:nil];
        if (ret2) {
            NSLog(@"檔案刪除成功");
        }else{
            NSLog(@"檔案刪除失敗");
        }
    }else{
        return;
    }
}