oc 沙盒目录定位与文件操作 (1)
来源:互联网 发布:js中的split方法 编辑:程序博客网 时间:2024/06/08 10:38
july 7,30
1.NSString
获取沙盒的主目录
NSString *homePath=NSHomeDirectory();
2.获取沙盒下的目录
Documents目录
(1)NSString *documents=[homePath stringByAppendingPathComponent:@"Documents"];
(2)(要重点记住这个搜索方法,今天白天没练习的)
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- /*
- NSString *storePath = [documentsDirectory stringByAppendingPathComponent:@"Data.txt"];
- NSURL *storeURL = [NSURL fileURLWithPath:storePath]
- */
tmp 目录
NSString *temporary =NSTemporaryDirectory();
NSLog(@"____%@",temporary);
资源文件目录(readonly 不可写文件进去)NSBundle *app = [NSBundlemainBundle];
library目录
NSArray *lib =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
3.获取路径的组成部分
[path pathComponents];
路径的最后一个组成部分
[path lastPathComponent];
追加文件或目录 这个经常用开头不要加斜杠
[path stringByAppendingPathComponent:@"app.text"];
删除最后部分的组成部分
[path stringByDeletingLastPathComponent];
取路径最后部分的扩展名
[path pathExtension];
[path stringByAppendingPathExtension:@"jpg"];
==================================================
4.NSFileManager主要对文件进行管理,主要有如下功能
NSFileManager *fileManager=[NSFileManager defaultManager];
创建 复制 删除 剪贴
create copy remove move
createFileAtPath 创建文件
createDirectoryAtPath 创建文件夹
读取 contentsAtPath
文件是否存在 fileExistsAtPath
5.删除文件
bool isExist=[fm fileExistsAtPath:path];
if(isExist)
{
bool success=[fm removeItemAtPath:path error:nil];
if(success)
{
NSLog(@"remove success!");
}
}
6.获取文件大小
NSDictionary *attrDic=[fileManager attributesOfItemAtPath:path error:nil];
NSNumber *fileSize=[attrDic objectForKey:NSFileSize];
NSInteger *p=[fileSize intValue];
7.数组、字典、字符串、NSData都是容纳数据的,他们都有一个writeToFile方法,将数据写入文件
NSString *s1=@"1424";
NSString *s2=@"student"
NSArray *array=[NSArray arrayWithObjects:s1,s2,nil];
[array writeToFile:path atomically:YES];
8.数组读文件
NSArray *array=[[NSArray alloc]initWithContentsOfFile:path];
NSArray *array=[NSArray arrayWithContentsOfFile;path];
=============================================================
9.NSFileHandle
创建:
NSFileHandle fileHandle=[NSFileHandle fileHandleForReadingAtPath:path];
只读操作
writing
只写操作
updating
可读可写
10.读取文件全部数据
availableData
写入数据
writeData
11.offsetInFile 获取当前文件的偏移量
seekToFileOffset 跳到指定文件的偏移量
seekToEndOfFile 使偏移量跳到文件末尾
readDataToEndOfFile 从当前偏移量读取到文件末尾
readDataOfLength从当前偏移量开始读取指定的长度数据
12.数据的转换
NSString 转换成NSData
NSData *stringData=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData 转换成 NSString
[fileHandle seekToFileOffset:0];
NSData *data2=[fileHandle availableData];
NSString *string2=[[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
13.获取目录下文件总大小
NSArray *pathArray=[fileManager subpathAtPath:path];
long sum;
for(NSString *subPath in pathArray)
{
NSString *paths=[path stringByAppendingPathComponent:subPath];
NSDictionary *attrDic=[fileManager attributesOfItemAtPath:paths error:nil];
NSNumber *fileSize=[attrDic objectForKey:NSFileSize];
sum+=[fileSize intValue];
}
14.数组只能将如下数据类型写入文件,如果包含其他对象,将写入失败
数组、字典写入的文件叫属性列表(plist)文件,可以用xcode打开编辑
注意事项:
(1)、删除、读取或写入,都需要用NSFileManager 用create方法进行路径或文件的创建
而剪贴或复制则不需要
(2)、牢记写入时,如果当前位置有内容,则新内容会覆盖当前的内容
(3)、NSFileManager主要进行文件的删除、剪贴、复制 而NSFileHandle主要进行文件的读写
(4)、文件进行删除复制或者剪贴操作时,下次操作时记得重新定义操作句柄
(4)、NSFileHandle主要是能在文件内定位
(5)、使用NSFileHandle记得关闭 [fileHandle closeFile];
(6)、牢记当前的指针 记得fileHandle的时效型
(7)、—安装目录(homeDirectory),r NSHomeDiectory();
---documents:长期存放用户文件(夹)rw
---tmp : 存放临时文件 rw NSTemporaryDirectory()
---.app :(mainBundle)存放可执行文件和资源文件 r NSSearchPathForDirectoriesInDomains()
---library :--caches:存放缓存文件 rw 获取路径方法:[NSBundle mainBundle]
0 0
- oc 沙盒目录定位与文件操作 (1)
- oc 沙盒目录定位与文件操作 (1)
- Linux2文件目录操作4-文件查找与定位命令
- OC学习之文件目录操作
- oc中的文件和目录相关操作
- OC学习之文件目录操作
- OC 文件与文件夹操作
- 文件与目录操作
- 文件与目录操作
- oc文件操作及沙盒机制
- 文件与目录(权限,操作,搜索)
- 文件与目录(权限,操作,搜索)
- OC-目录操作
- python:目录与文件操作
- python目录与文件操作
- python_文件与目录操作
- 文件与目录操作函数
- python:目录与文件操作
- 超炫button按钮动画效果
- C进阶指南(3):显式内联、矢量扩展、C的逸闻轶事
- swift-控制语句测试题答案
- 设置图片圆角
- ORACLE 操作和管理表
- oc 沙盒目录定位与文件操作 (1)
- [leetcode] Median of Two Sorted Arrays
- poj1915
- 如何学好3D游戏引擎编程(二)
- hdu 3605 Escape(多重匹配)
- LCA
- C#调用C(C++)dll示例教程,包含dll找不到函数入口的解决办法,包含C#dll调用方式不对出错的解决办法
- ORACLE 操纵数据&&锁&&事务
- 如何学好3D游戏引擎编程(三)