iOS应用程序沙盒路径

//获得应用程序沙盒的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");

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 27、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是...
    烟雨平生花飞舞阅读 617评论 0 1
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    1d5cb7cff98d阅读 1,787评论 0 0
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    tzhtodd阅读 1,300评论 0 2
  • iOS开发-文件管理(一) 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭...
    MacShare阅读 1,814评论 0 6
  • 做淘宝做得好,首先要有单品思维,向客户提供最好的单品。而不是一下子跟淘宝合作几十款产品。虽然淘宝没有上架费,但是你...
    发光er阅读 306评论 0 0