http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2928|回复: 5

[新手开发之旅] 【iOS新手开发之旅】文件管理

[复制链接]
发表于 2018-12-16 21:28:11 | 显示全部楼层 |阅读模式
本帖最后由 竹林风 于 2018-12-24 14:54 编辑

  文章导航  

【iOS新手开发之旅】   http://www.sufeinet.com/thread-24000-1-1.html


.iOS中的沙盒机制
iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。
每个应用程序都有自己的独立的存储空间(沙盒)
一般来说应用程序之间是不可以互相访问

模拟器沙盒的位置: /User/userName/Library/Application Support/iPhone Simulator

当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Document、Library和temp。

  • Document:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。
  • Library:设置程序的默认设置和其他状态信息
  • temp:创建临时文件的目录,当iOS设备重启时,文件会被自动清除


获取沙盒目录


获取程序的根目录(home)目录
[Objective-C] 纯文本查看 复制代码
NSString *homePath = NSHomeDirectory()

获取Document目录
[Objective-C] 纯文本查看 复制代码
NSArray  *paths = NSSearchPathDorDirectoriesInDomains(NSDocumentDicrectory,, NSUserDomainMark, YES);    NSString *docPath = [paths lastObject];

获取Library目录
[Objective-C] 纯文本查看 复制代码
NSArray *paths = NSSearchPathForDirectoriseInDomains(NSLibraryDirectory, NSUserDomainMask, YES);                                                                                           NSString *docPath = [paths lastObject];
获取Library中的Cache
[Objective-C] 纯文本查看 复制代码
NSArray *paths = NSSearchPathForDirectoriseInDomains(NSCachesDirectory, NSUserDomainMask, YES);                                                                                   NSString *docPath = [paths lastObject];
获取temp路径
[Objective-C] 纯文本查看 复制代码
NSString *temp = NSTemporaryDirectory( );

二、NSString类路径的处理方法

文件路径的处理
[Objective-C] 纯文本查看 复制代码
NSString *path = @"/Uesrs/apple/testfile.txt"


常用方法如下:

获得组成此路径的各个组成部分,结果:("/","User","apple","testfile.txt")
[Objective-C] 纯文本查看 复制代码
- (NSArray *)pathComponents;

提取路径的最后一个组成部分,结果:testfile.txt
[Objective-C] 纯文本查看 复制代码
- (NSString *)lastPathComponent;

删除路径的最后一个组成部分,结果:/Users/apple
[Objective-C] 纯文本查看 复制代码
- (NSString *)stringByDeletingLastPathCpmponent;

将path添加到先邮路径的末尾,结果:/Users/apple/testfile.txt/app.txt
[Objective-C] 纯文本查看 复制代码
- (NSString *)stringByAppendingPathConmponent:(NSString *)str;

取路径最后部分的扩展名,结果:txt
[Objective-C] 纯文本查看 复制代码
- (NSString *)pathExtension;

删除路径最后部分的扩展名,结果:/Users/apple/testfile
[Objective-C] 纯文本查看 复制代码
- (NSString *)stringByDeletingPathExtension;

路径最后部分追加扩展名,结果:/User/apple/testfile.txt.jpg
[Objective-C] 纯文本查看 复制代码
- (NSString *)stringByAppendingPathExtension:(NSString *)str;

三、文件的操作

1.创建文件夹
[Objective-C] 纯文本查看 复制代码
//创建文件夹
-(void *)createDir{
    NSString *documentsPath =[self dirDoc];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    // 创建目录
    BOOL res=[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];
    if (res) {
        NSLog(@"文件夹创建成功");
    }else
        NSLog(@"文件夹创建失败");
 }


2.创建文件

[Objective-C] 纯文本查看 复制代码
//创建文件
-(void *)createFile{
    NSString *documentsPath =[self dirDoc];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];
    BOOL res=[fileManager createFileAtPath:testPath contents:nil attributes:nil];
    if (res) {
        NSLog(@"文件创建成功: %@" ,testPath);
    }else
        NSLog(@"文件创建失败");
}


3.写数据到文件

[Objective-C] 纯文本查看 复制代码
//写文件
-(void)writeFile{
    NSString *documentsPath =[self dirDoc];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];
    NSString *content=@"测试写入内容!";
    BOOL res=[content writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    if (res) {
        NSLog(@"文件写入成功");
    }else
        NSLog(@"文件写入失败");
}


4.读文件数据:

[Objective-C] 纯文本查看 复制代码
//读文件
-(void)readFile{
    NSString *documentsPath =[self dirDoc];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];
//    NSData *data = [NSData dataWithContentsOfFile:testPath];
//    NSLog(@"文件读取成功: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    NSString *content=[NSString stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"文件读取成功: %@",content);
}


5.文件属性

[Objective-C] 纯文本查看 复制代码
//文件属性
-(void)fileAttriutes{
    NSString *documentsPath =[self dirDoc];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];
    NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:testPath error:nil];   
    NSArray *keys;
    id key, value;
    keys = [fileAttributes allKeys];
    int count = [keys count];
    for (int i = 0; i < count; i++)
    {
        key = [keys objectAtIndex: i];
        value = [fileAttributes objectForKey: key];
        NSLog (@"Key: %@ for value: %@", key, value);
    }
}


6.删除文件

[Objective-C] 纯文本查看 复制代码
//删除文件
-(void)deleteFile{
    NSString *documentsPath =[self dirDoc];
    NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];   
    BOOL res=[fileManager removeItemAtPath:testPath error:nil];
    if (res) {
        NSLog(@"文件删除成功");
    }else
        NSLog(@"文件删除失败");   
    NSLog(@"文件是否存在: %@",[fileManager isExecutableFileAtPath:testPath]?@"YES":@"NO");
}


下一篇 应用内购买






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-16 21:35:55 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-16 21:41:55 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-16 23:06:01 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-17 10:12:02 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-18 11:32:56 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-20 16:38

© 2014-2021

快速回复 返回顶部 返回列表