iOS应用程序沙盒路径

96
博行天下
2017.01.04 09:19* 字数 816

//获得应用程序沙盒的Documents文件夹路径**

NSArray *arrDocumentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *documentPath = [arrDocumentPathsobjectAtIndex:0];

NSLog(@"Documents path: %@",documentPath);


**//获得应用程序沙盒的Caches文件夹路径**

NSArray*arrCachesPaths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString*CachesPath=[arrCachesPathsobjectAtIndex:0];

NSLog(@"Caches path: %@",CachesPath);


//获得应用程序沙盒的Downloads文件夹路径

NSArray*arrDownloadPaths=NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory,NSUserDomainMask,YES);

NSString*loadPathsPath=[arrDownloadPathsobjectAtIndex:0];

NSLog(@"Downloads path: %@",loadPathsPath);


//获得应用程序沙盒的home文件夹路径**

NSString*homePath=NSHomeDirectory();

//获得应用程序沙盒的tmp文件夹路径**

NSString*TmpPath=NSTemporaryDirectory();


//将文件写入到指定程序沙盒的指定文件夹中**

NSString *fileName =  [homePathstringByAppendingPathComponent:@"myFile"];

NSString *content = @"a";

NSData *contentData = [contentdataUsingEncoding:NSUTF8StringEncoding];

if([contentDatawriteToFile:fileNameatomically:YES]) {

NSLog(@"写入成功");

}



NSFileManager是一个单列类,也是一个文件管理器。可以通过NSFileManager创建文件夹、创建文件、写文件、读文件内容等等基本功能。

下面将介绍NSFileManager文件操作的十个小功能。我们在Documents里面进行举例,首先是获取Documents的路径。

获取Documents路径方法如下:

- (NSString*)getDocumentsPath{

//获取Documents路径NSArray*paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*path = [paths objectAtIndex:0];NSLog(@"path:%@", path);

return path;

}



创建文件夹

-(void)createDirectory{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSDirectory = [documentsPath stringByAppendingPathComponent:@"iOS"];

BOOL isSuccess = [fileManager createDirectoryAtPath:iOSDirectory withIntermediateDirectories:YES attributes:nil error:nil];

if (isSuccess) {

NSLog(@"success");

} else {

NSLog(@"fail");

}

}


创建文件

-(void)createFile{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager createFileAtPath:iOSPath contents:nil attributes:nil];

if (isSuccess) {

NSLog(@"success");

} else {

NSLog(@"fail");

}

}


写文件

-(void)writeFile{

NSString *documentsPath =[self getDocumentsPath];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *content = @"我要写数据啦";

BOOL isSuccess = [content writeToFile:iOSPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

if (isSuccess) {

NSLog(@"write success");

} else {

NSLog(@"write fail");

}

}


读取文件内容

-(void)readFileContent{

NSString *documentsPath =[self getDocumentsPath];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *content = [NSString stringWithContentsOfFile:iOSPath encoding:NSUTF8StringEncoding error:nil];

NSLog(@"read success: %@",content);

}


判断文件是否存在

- (BOOL)isSxistAtPath:(NSString *)filePath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:filePath];

return isExist;

}


计算文件大小

- (unsigned long long)fileSizeAtPath:(NSString *)filePath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:filePath];

if (isExist){

unsigned long long fileSize = [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize];

return fileSize;

} else {

NSLog(@"file is not exist");

return 0;

}

}



计算整个文件夹中所有文件大小

- (unsigned long long)folderSizeAtPath:(NSString*)folderPath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:folderPath];

if (isExist){

NSEnumerator *childFileEnumerator = [[fileManager subpathsAtPath:folderPath] objectEnumerator];

unsigned long long folderSize = 0;

NSString *fileName = @"";

while ((fileName = [childFileEnumerator nextObject]) != nil){

NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

folderSize += [self fileSizeAtPath:fileAbsolutePath];

}

return folderSize / (1024.0 * 1024.0);

} else {

NSLog(@"file is not exist");

return 0;

}

}


删除文件

-(void)deleteFile{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager removeItemAtPath:iOSPath error:nil];

if (isSuccess) {

NSLog(@"delete success");

}else{

NSLog(@"delete fail");

}

}


移动文件

- (void)moveFileName

{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

if (isSuccess) {

NSLog(@"rename success");

}else{

NSLog(@"rename fail");

}

}


重命名

- (void)renameFileName

{

//通过移动该文件对文件重命名

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"];

BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

if (isSuccess) {

NSLog(@"rename success");

}else{

NSLog(@"rename fail");

}

}

iOS代码