ios - 文件保存路径的获取
- "应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。
- 获取方式:
NSString *path = [[NSBundle mainBundle] bundlePath];
- Documents: iTunes会同步此文件夹中的内容,一般用来存储持久化的数据.
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
- firstObject或者lastobject都可以,因为该目录下只有一个文件夹
- Library/Caches: iTunes不会同步此文件夹,caches存储缓存的.library目录下另一个文件夹是 preference 偏好设置文件夹,通过获取偏好设置的单例,直接可以保存在偏好设置里面的.plist文件
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
//偏好设置的单例
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//直接调用方法就能保存入偏好设置里面
[userDefaults setObject:@"hello"forKey:@"hello"];
//保存完以后一定记得同步synchronize更新一下.
- 临时文件夹tmp: iTunes不会同步此文件夹,里面存的是临时文件,随时可以被删除,一般不怎么用
NSString *path = NSTemporaryDirectory();
比较常用的归档保存
- 比如要归档一个对象或者model模型,则要归档的对象要遵守 协议
- 在.m文件中实现归档,解档的协议方法
//
// Person.m
// test
//
// Created by 裴波波 on 16/4/8.
// Copyright © 2016年 裴波波. All rights reserved.
//
#import "Person.h"
@implementation Person
//归档
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeObject:self.age forKey:@"age"];
[aCoder encodeObject:self.hight forKey:@"hight"];
}
//解档
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if([super init]){
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeObjectForKey:@"age"];
self.hight = [aDecoder decodeObjectForKey:@"hight"];
}
return self;
}
@end
- 上面是告诉编译器按照什么方式进行归档.
- 如何调用HOW??
//获取要保存文件的路径.并创建对应的文件,文件的后缀,越复杂越好,因为别人拿到后不会发现里面有什么
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"peibobo.bobo"];
//第二步---归档----------------------per要归档的对象---filePath要归档到的文件
[NSKeyedArchiver archiveRootObject:per toFile:filePath];
- 解档
//一样获取文件
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"peibobo.bobo"];
//调用方法
Person *per = [NSKeyedUnarchiver unarchiveObjectWithFile:file];
注意点:
* 要归档对象要遵守NSCoding协议,实现归档解档方法.
* 获取保存的文件,要保存文件的路径
* 调用两个方法一个进行归档,一个进行解档.
ios - 文件保存路径的获取的更多相关文章
- iOS 沙盒路径获取,创建文件
沙盒下主要有四个文件夹:document,caches,tmp,library document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传 ...
- iOS——文件操作NSFileManager (创建、删除,复制,粘贴)
iOS——文件操作NSFileManager (创建.删除,复制,粘贴) iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...
- IOS文件操作的两种方式:NSFileManager操作和流操作
1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...
- 【精】iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系. 每一个 iOS 应用程序都有一个单独的文件系统(存储空间).并且仅仅能在相应的文件系统中进行操作,此区域被称为沙盒. 全部的非 ...
- iOS文件处理类
iOS文件处理类 这是一个用来简化iOS中关于文件操作的一个类,所有方法都为类方法. Source File.h // // File.h // FileManager // // http://ho ...
- ios中摄像头/相册获取图片压缩图片上传服务器方法总结
本文章介绍了关于ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结,有需要了解的同学可以参考一下下. 这几天在搞iphone上面一个应用的开发,里面有需要摄像头/相册编程和图片上传的问 ...
- MCDownloadManager ios文件下载管理器
我们用AFNetworking小试牛刀,写一个简单的下载器来演示功能. 前言 为什么AFNetworking能够成为顶级框架?我们究竟该如何领悟它的精髓所在?这都是很难的问题.安全,高效,流畅,这3个 ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- asp.net 5 中应用程序根目录及物理文件根目录的获取方式 此文已过期,不再适应rc1以后的版本
之前看了asp.net5,小弟就试着用了用,做了个小网站练习一下,有一个小模块需要上传图片到wwwroot下的images文件夹,但是aspnet5 发生了翻天复地变化,之前获取网站根目录的的方法不再 ...
随机推荐
- ACM: 还是畅通工程-并查集-最小生成树-解题报
还是畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查乡村交通 ...
- 详解SpringMVC请求的时候是如何找到正确的Controller[附带源码分析]
目录 前言 源码分析 重要接口介绍 SpringMVC初始化的时候做了什么 HandlerExecutionChain的获取 实例 资源文件映射 总结 参考资料 前言 SpringMVC是目前主流的W ...
- 详解C#break ,continue, return
C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范. C# ...
- Ubuntu root密码修改
安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下.到网上搜了一下,原来是这麽回事.Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可 ...
- 利用MetaWeblog API实现XMLRPC写博客功能
Windows Live Writer是一款小巧的写博客的工具,非常方便,甚至网上看到过有的评论称Live Writer是一款最不像微软产品的微软产品. Writer支持MSN Spaces以及Wor ...
- Daily Scrum 11.3
今天开发人员的任务都还行,测试的同学要开始辛苦了. 下面是今天的Task统计:
- 关于 calloc 函数使用 与fun 函数
s=(float *) calloc (1,sizeof(float)); #include "stdio.h"#include "stdlib.h"void ...
- P4实验问题 解决python模块导入
参考:Python导入自定义包或模块 在执行./run_demo.sh的过程中,遇到了python的模块问题: root@ubuntu:/home/wasdns/tutorials/SIGCOMM_2 ...
- lua 可变参数
问题:对可变参数传递的时候,采用如下方案: local cellData = {MsgText = msgText,Param = ...,CallBackFunc = callBackFunc,Ca ...
- Postgres-enum
-- 1. rename the enum type you want to change alter type some_enum_type rename to _some_enum_type; - ...