iOS 关于文件的操作

最近做东西,遇到了使用文件方面的问题,花了点时间把文件研究了一下!

一  关于文件路径的生成

我用的方法是:

-(NSString*)dataFilePath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory  = [paths objectAtIndex:0];

NSLog(@"—0——%@",documentsDirectory);

return [documentsDirectory stringByAppendingPathComponent:@"cataog.db”];

}

但是NSDocumentDirectory是指程序中对应的Documents 路径,

NSDocumentationDiretory是对应于程序中的Library/Documentation 路径 ,这个路径是没有读写权限的,所以即使自己所查找的文件不存在,也看不到文件的自动生成!

所以以上应改为:

-(NSString*)dataFilePath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory  = [paths objectAtIndex:0];

NSString *path =[documentsDirectory stringByAppendingPathComponent:@"cataog.db"];

NSLog(@"*****%@",path);

return path;

}

这样的话就可以了!

下面讨论一下对文件的操作:

对文件的操作,核心函数是:NSSearchPathForDirectoriesInDomains

iOS 看开发是在沙盒中开发的,对一些部分的文件的读写进行了限制,只能在几个目录下读写文件:

(1)Documents :应用中用户数据可以存放在这里,iTunes的数据备份和恢复的时候会包括此目录

(2)tmp:存放临时文件的,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除

(3)Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会再应用退出删除对于文件的操作

二   利用NSSearchPathForDirectoriesInDomains 建立文件,并可以向内写入数据

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory  = [paths objectAtIndex:0];

NSString *content[email protected]"write data into myFile”;

NSData *contentData=[content dataUsingEncoding:NSASCIIStringEncoding];

if ([contentData writeToFile:fileName atomically:YES]) {
    NSLog(@">>write ok."); 
}

如果要想文件内写入文字的话,需要改变编码方式:

NSString *contentChinese[email protected]"写入汉字信息到文件”;

NSData *contentChineseData=[contentChinese dataUsingEncoding:NSUnicodeStringEncoding];

if ([contentData writeToFile:fileName atomically:YES]) {
    NSLog(@">>写入成功.");

}

如果要指定其他文件目录,比如Caches目录,需要更换目录常量为:NSCachesDirectory

为大家列出:

常量                                                                      目录       
NSDocumentDirectory                        <Application_Home>/Documents       
NSCachesDirectory                             <Application_Home>/Library/Caches       NSApplicationSupportDirectory          <Application_Home>/Library/ApplicationSupport

  另外我们在开发中也需要用到一些资源文件:

NSString *Path = [[NSBundle mainBundle] 
                        pathForResource:@"f" 
                        ofType:@"txt"]; 
NSString *Content=[NSString stringWithContentsOfFile:Path encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@" path: %@ \nfile content:%@",Path,Content);

时间: 2024-07-31 21:49:01

iOS 关于文件的操作的相关文章

OC学习篇之---文件的操作

今天我们来介绍OC中文件操作,在之前的文章中,已经接触到了文件的创建了,但是那不是很具体和详细,这篇文章我们就来仔细看一下OC中是如何操作文件的: 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文件路径名的方法 [objc] view plain copy // //  main.m //  37_FilePathHandle // //  Created by jiangwei on 14-10-13. //  Copyright (c) 2014年 jiangwei. Al

(转载)OC学习篇之---文件的操作

前一篇文章中我们讲到了OC中的归档和解档操作,今天我们来介绍OC中文件操作,在之前的文章中,已经接触到了文件的创建了,但是那不是很具体和详细,这篇文章我们就来仔细看一下OC中是如何操作文件的: 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文件路径名的方法 1 // 2 // main.m 3 // 37_FilePathHandle 4 // 5 // Created by jiangwei on 14-10-13. 6 // Copyright (c) 2014年 jian

文件的操作(转)

转自http://blog.csdn.net/jiangwei0910410003/article/details/41875015 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文件路径名的方法 [objc] view plaincopy // //  main.m //  37_FilePathHandle // //  Created by jiangwei on 14-10-13. //  Copyright (c) 2014年 jiangwei. All rights

iOS中对文件的操作

转自:http://marshal.easymorse.com/archives/3340 iOS中对文件的操作 因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除 Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除 在Do

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作 by 伍雪颖 + (void)createFolder:(NSString *)folderName { NSString *imageDir = [NSString stringWithFormat:@"%@/Documents/%@", NSHomeDirectory(),folderName]; NSLog(@"HomeDir: %@",imageDir); BOOL isDir = NO; NSFileM

iOS开发-文件操作

目录操作和文件管理 学习目标 1.理解单例 2.掌握NSFileManager类常用的文件管理操 3.掌握NSFileHandle类常用的文件数据操作 4.了解NSData类的常用操作 5.掌握Plist文件读写 ---------------------- 通常程序在运行中或者程序结束之后,需要保存一些信息,而且需要持久化存储信息,比如登陆信息.视频播放记录.收藏记录等等,那么我们可以采用以下几种方式对数据进行持久化保存. 1.1单例模式(当前对象有且仅有一个实例) 好处:只有一个实例,数据共

iOS开发——Swift篇&amp;文件,文件夹操作

文件,文件夹操作 ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍历一个目录下的所有文件 1 //假设用户文档下有如下文件和文件夹[test1.txt,fold1/test2.txt] 2 let manager = NSFileManager.defaultManager() 3 let urlForDocument = manager.URLsForDirectory

iOS开发 plist文件的操作

iOS开发 plist文件操作 浏览:6287 | 更新:2015-02-05 19:57 1 2 3 4 5 分步阅读 iOS开发常用数据存储方式有:NSKeyedArchiver.NSUserDefaults.Write写入方式.SQLite.为了简洁明了的存储和可视化展现数据,以文件形式存储数据是很有必要的.plist文件在iOS开发中属于Write写入方式,可以以Property List列表形式显示,也可以以xml格式显示.对于数据管理是很方便的.掌握使用plist文件数据操作很有必要

iOS NSFileManager文件操作

参考:http://blog.csdn.net/xyz_lmn/article/details/8968213 感谢这些先行者 文件操作常用操作记录一下: //获取沙盒的根路径 NSString *dirHome = NSHomeDirectory(); NSLog(@"%@",dirHome); //获取Documents目录路径 NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,