您的位置:首页 > 移动开发 > IOS开发

iOS 文件操作

2015-07-31 13:58 423 查看
将字符串,数组,字典中的数据写入文件中保存

        Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

     

        Library:存储程序的默认设置或其它状态信息;

     

        Library/Caches:存放缓存文件,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下。

     

        tmp:提供一个即时创建临时文件的地方,但不需要持久化,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候清除。
  

    

    
   
/*

        获取引用沙盒根路径

     */
   
NSString *str = NSHomeDirectory();

    NSLog(@"app_home :%@",str);

    
   
/*

        获取Documents目录路径

     */

    

    NSArray *docPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
   
NSString *documentsDirectory = [docPaths
objectAtIndex:0];
   
NSLog(@"app_home_doc: %@",documentsDirectory);

   
/*

        获取Library目录路径

     */

    NSArray *LibPaths =
NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES);
   
NSString *libraryDirectory = [LibPaths
objectAtIndex:0];
   
NSLog(@"app_home_lib: %@",libraryDirectory);

    
   
/*

        获取Cache目录路径

     */

    

    NSArray *cahPaths =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES);
   
NSString *cacheDirectory = [cahPaths
objectAtIndex:0];
   
NSLog(@"app_home_cah: %@",cacheDirectory);

    
   
/*

        获取Tmp目录路径

     */
   
NSString *tmpDirectory =
NSTemporaryDirectory();
   
NSLog(@"app_home_tmp: %@",tmpDirectory);

    
   
/*

        对文件的具体操作,创建文件夹

     */

    

    NSFileManager *fileManager = [NSFileManager
defaultManager];
   
NSString *testDirectory = [documentsDirectory
stringByAppendingPathComponent:@"test"];
   
/*

        创建目录

     */

    BOOL resDirectory = [fileManager
createDirectoryAtPath:testDirectory withIntermediateDirectories:YES
attributes:nil
error:nil];
   
if (resDirectory) {
       
NSLog(@"文件夹创建成功");
    }else{
       
NSLog(@"文件夹创建失败");
    }

    
   
/*

        创建文件

     */
   
NSString *testPath = [testDirectory
stringByAppendingPathComponent:@"test.txt"];
   
BOOL resFile = [fileManager
createFileAtPath:testPath contents:nil
attributes:nil];
   
if (resFile) {
       
NSLog(@"文件创建成功");
    }else{
       
NSLog(@"文件创建失败");
    }

    /******************************(字符串)************************/
   
/*

        写数据(字符串)到文件

     */
   
NSString *writeContent =
@"测试写入内容";

    BOOL res = [writeContent
writeToFile:testPath atomically:YES
encoding:NSUTF8StringEncoding
error:nil];
   
if (res) {
       
NSLog(@"文件写入成功");
    }else{
       
NSLog(@"文件写入失败");
    }

    
   
/*

        读取(字符串)文件

     */

    NSString *readContent = [NSString
stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding
error:nil];
   
NSLog(@"文件读取成功: %@",readContent);

    

     /******************************(数组)************************/

    
   
/*

        写数据(数组)到文件

     */

    
   
NSArray *writeArrcontent = [NSArray
arrayWithObjects:@"1",@"luo",@"asdf",
nil];
   
BOOL resArr = [writeArrcontent
writeToFile:testPath atomically:YES];
   
if (resArr) {
       
NSLog(@"数组写入成功");
    }else{

        
       
NSLog(@"数组写入失败");
    }
   
/*

        读取(数组)文件

     */
   
NSArray *arr = [NSArray
arrayWithContentsOfFile:testPath];
   
for (NSString *str
in arr) {
       
NSLog(@"%@",str);
    }

    NSLog(@"文件读取成功");

    /******************************(字典)************************/

    
   
/*

        写数据(字典)到文件

     */
   
NSDictionary *writeDicContent = [NSDictionary
dictionaryWithObjectsAndKeys:@"valu1",@"key1" ,@"value2",@"key2",nil];
   
BOOL resDic = [writeDicContent
writeToFile:testPath atomically:YES];
   
if (resDic) {
       
NSLog(@"字典写入成功");
    }else{

        
       
NSLog(@"字典写入失败");
    }

   
/*

        读取(字典)文件

     */

    NSDictionary *dic = [NSDictionary
dictionaryWithContentsOfFile:testPath];
   
for (NSString *str
in dic) {
       
NSLog(@"key %@ for value %@",str,[dic
objectForKey:str]);
    }

   
/*

        文件属性

     */
   
NSDictionary *fileAttributes = [fileManager
attributesOfItemAtPath:testPath error:nil];
   
for (NSString *keyString
in fileAttributes) {
       
NSLog(@"key: %@ for value: %@",keyString,[fileAttributes
valueForKey:keyString]);
    }

    
   
/*

        删除文件

     */
   
BOOL deleteRes = [fileManager
removeItemAtPath:testPath error:nil];
   
if (deleteRes) {
       
NSLog(@"文件删除成功");
    }else{
       
NSLog(@"文件删除失败");
    }
   
NSLog(@"文件是否存在:%@",[fileManager
isExecutableFileAtPath:testPath] ?
@"YES" : @"NO");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS文件操作