IOS文件管理
1.沙盒机制:IOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间就叫做沙盒。它可以存储程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库文件以及其它文件.
一般地,IOS中每个应用程序都有自己的沙盒并且每个应用的沙盒是互相独立的,他们封闭而不能互通,老死不相往来.
沙盒中一般包含三个文件,分别是:Document、Library、temp.
Document:一般需要持久的数据都存放该目录中,可以在当中添加子文件夹,ITunes备份和恢复的时候,会包括此目录.
Library:设置程序的默认设置和其他状态信息.
temp:创建临时文件的目录,当IOS设置重启时,文件会被自动清除
2.如何获取沙盒目录
/**
获取沙盒根目录
*/
-(NSString*)getHomeDirectoryPath{
NSString* homePath = NSHomeDirectory();
NSLog(@”homePath:%@”,homePath);
return homePath;
}
/**
获取Document目录
@return Document目录路径
*/
-(NSString*)getDocumentPath{
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@”paths:%@”,paths);
return [paths lastObject];
}
/**
获取library文件路径
@return library文件路径
*/
-(NSString*)getLibraryPath {
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSLog(@”paths:%@”,paths);
return [paths lastObject];
}
/**
获取library文件中cache路径
@return library文件中cache路径
*/
-(NSString*)getCachePathInLibrary{
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSLog(@”paths:%@”,paths);
return [paths lastObject];
}
/**
获取temp的路径
@return temp的路径
*/
-(NSString*)getTempPath {
NSString* temp = NSTemporaryDirectory();
NSLog(@”temp:%@”,temp);
return temp;
}
3.NSString类来处理关于文件路径
如:NSString *filePth = @”/Users/apple/testfile.txt”;
常用方法如下:
/**
获取文件路径各个部分
@return 文件路径各个部分
*/
-(NSArray*)patchComponents{
NSArray* array = [filePth pathComponents];
return array;
}
/**
获取文件路径最后部分
@return 文件路径最后部分
*/
-(NSString*)lastPathComponet {
return [filePth lastPathComponent];
}
/**
获取删除文件路径最后部分的路径
@return 文件路径删除最后部分的剩余路径
*/
-(NSString*)stringByDeletingLastPathComponent {
return [filePth stringByDeletingLastPathComponent];
}
/**
给文件路径最后增加一个子路径
@param str 子路径名字
@return 追加子路径后的文件路径
*/
-(NSString*)stringByAppendingPathConmponent:(NSString*)str{
return [filePth stringByAppendingString:str];
}
/**
获取文件的扩展名
@return 文件的扩展名
*/
-(NSString*)pathExtension{
return [filePth pathExtension];
}
/**
获取删除文件扩展名后的文件路径
@return 删除扩展名后的文件路径名
*/
-(NSString*)stringByDeletingPathExtension{
return [filePth stringByDeletingPathExtension];
}
/**
给文件路径追加文件扩展名
@param str 文件扩展名
@return 追加文件扩展名后的文件路径
*/
-(NSString*)stringByAppendingPathExtension:(NSString*)str {
return [filePth stringByAppendingPathExtension:str];
}
总结:在文件管理中,我们通常需要结合NSString来做,因此NSString封装的方法非常便于我们操作文件。