美文网首页
iOS 沙盒路径获取,创建文件

iOS 沙盒路径获取,创建文件

作者: Youzhicha | 来源:发表于2020-11-06 22:30 被阅读0次

沙盒下主要有四个文件夹:
document,
caches,
tmp,
library

Object-c

document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传

caches 的路径 一般用于文件的下载,存储(不会被上传)

tmp 临时文件.程序结束后应该清空

沙盒文件夹路径获取:

获取沙盒路径:

1 NSString *sandBoxPath = NSHomeDirectory();

获取 document :

1 NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

获取 caches 路径:

1 NSString *cacherPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

获取 tmp 路径:

1 NSString *tmpPath = NSTemporaryDirectory();

在沙盒下创建文件:

1.获取路径

2.拼接文件名(包括后缀)

3.将内容写到文件

例:写一个 txt 文件:

1 //NSString 写入 
2      
3     NSString *str = @"二傻子"; 
4      
5     //获取 document 路径 
6     NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 
7      
8     //拼接上一个 txt 文件 
9     NSString *filePath = [docPath stringByAppendingPathComponent:@"coco.txt"];
10     
11     //吧字符串写到 txt 文件
12     [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

例:写一个 array 文件:

1 //NSArray
2     
3     NSArray *array = @[@"二傻子",@"三傻子",@"翠花",@"叶良岑",@"赵日天",@"王尼玛"];
4     
5     NSString *tmpPath1 = NSTemporaryDirectory();
6     
7     NSString *tmpFilePath = [tmpPath1 stringByAppendingPathComponent:@"tmp.plist"];
8     
9     [array writeToFile:tmpFilePath atomically:YES];

例:写一个 dictionary 文件:

1 NSDictionary *dic = @{@"1号":@"XXXXX",@"2号":@"XXXXX",@"3号":@"XXXXX",@"4号":@"XXXXX",@"5号":@"XXXXX"};
2     
3 NSString *dicPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
4 NSString *dicFilePath = [dicPath stringByAppendingPathComponent:@"dic.plist"];
5     
6 [dic writeToFile:dicFilePath atomically:YES];

例:写一个 image 文件:

1 NSString *cacherPath2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
2     
3 NSString *imgFilePath = [cacherPath2 stringByAppendingPathComponent:@"123.png"];
4 
5 NSData *data = [[NSData alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"]];
6     
7 [data writeToFile:imgFilePath atomically:YES];

Swift

1,Home目录, ./ , 整个应用程序各文档所在的目录

//获取程序的Home目录

let homeDirectory = NSHomeDirectory()

2,Documnets目录 ./Documents
用户文档目录,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

//方法1

let documentPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let documnetPath = documentPaths[0] as! String

//方法2

let ducumentPath2 = NSHomeDirectory() + "/Documents"

3,Library目录 ./Library
这个目录下有两个子目录:Caches 和 Preferences
Library/Preferences目录,包含应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好。
Library/Caches目录,主要存放缓存文件,iTunes不会备份此目录,此目录下文件不会再应用退出时删除

//Library目录-方法1

let libraryPaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.LibraryDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let libraryPath = libraryPaths[0] as! String

//Library目录-方法2

let libraryPath2 = NSHomeDirectory() + "/Library"

//Cache目录-方法1

let cachePaths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory,
    NSSearchPathDomainMask.UserDomainMask, true)
let cachePath = cachePaths[0] as! String

//Cache目录-方法2

let cachePath2 = NSHomeDirectory() + "/Library/Caches"
``
4,tmp目录  ./tmp
用于存放临时文件,保存应用程序再次启动过程中不需要的信息,重启后清空。

let tmpDir = NSTemporaryDirectory()

//方法2

let tmpDir2 = NSHomeDirectory() + "/tmp"


5,程序打包安装的目录 NSBundle.mainBundle()
工程打包安装后会在NSBundle.mainBundle()路径下,该路径是只读的,不允许修改。
所以当我们工程中有一个SQLite数据库要使用,在程序启动时,我们可以把该路径下的数据库拷贝一份到Documents路径下,以后整个工程都将操作Documents路径下的数据库。

//声明一个Documents下的路径
var dbPath = NSHomeDirectory() = "/Documents/hanggeDB.sqlite"
//判断数据库文件是否存在
if !NSFileManager.defaultManager().fileExistsAtPath(dbPath){
//获取安装包内数据库路径
var bundleDBPath:String? = NSBundle.mainBundle().pathForResource("hanggeDB", ofType: "sqlite")
//将安装包内数据库拷贝到Documents目录下
NSFileManager.defaultManager().copyItemAtPath(bundleDBPath!, toPath: dbPath, error: nil)
}

相关文章

  • iOS 文件操作

    iOS文件(沙盒目录,文件创建、移动、复制等) 目录获取获取沙盒的主目录路径: (NSString *)homeD...

  • iOS读写json文件

    一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录。但是iOS系统会将每个应用的...

  • 存取数据文件(一)

    demo存储文件到沙盒:1.获取沙盒路径: 2.创建文件名,得到文件路径 3.把要存到document里的所有数据...

  • iOS开发之文件操作

    iOS开发过程中,我们经常会遇到对文件的操作,如:获取沙盒路径、创建文件、修改文件、删除文件等。 所以现在对常用的...

  • 数据持久化

    沙盒路径 2)获取library路径 3)获取temp路径 4)保存一张图片到documents下的ios文件夹中...

  • iOS 沙盒路径获取,创建文件

    沙盒下主要有四个文件夹:document,caches,tmp,library Object-c document...

  • plist 文件创建和读取

    1.代码方式创建plist文件 创建和读取 1>获取本地沙盒路径 NSArray *path = NSSearch...

  • iOS开发之文件相关的操作(沙盒目录,文件创建、移动、复制等)

    前言 在iOS开发中我们经常会遇到一些关于文件的操作,比如说:获取沙盒路径、创建文件、删除文件、向文件内写入内容等...

  • Plist使用及常见问题

    一.创建Plist文件 1.手动创建 手动创建这位同学写的可以 2.代码创建 //获取本地沙盒路径 ...

  • iOS 沙盒文件路径获取

    1,Documents路径 Documents跟用户个人有关的文档,iTunes、iCloud可以”备份”手机 -...

网友评论

      本文标题:iOS 沙盒路径获取,创建文件

      本文链接:https://www.haomeiwen.com/subject/popxbktx.html