博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C: NSFileManager 的使用
阅读量:5218 次
发布时间:2019-06-14

本文共 2836 字,大约阅读时间需要 9 分钟。

在Objective-C 中的 Foundation 框架中,文件操作是由NSFileManager 类来实现的。

下面通过例子来说明如何创建一个文件,并向文件中写内容,以及如何读出文件中的内容:

- (void)testFileCreate{    NSFileManager *fileManager = [NSFileManager defaultManager];    NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];    filePath = [filePath stringByAppendingPathComponent:@"new.txt"];    NSLog(@"filePath = %@",filePath);    // 判断文件是否存在    if (![fileManager fileExistsAtPath:filePath]){        // 若文件不存在,则新建文件        [fileManager createFileAtPath:filePath contents:nil attributes:nil];    }    // 向文件中写内容,通过文件句柄,NSFileHandle实现    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];    NSString *content = @"hey,brother.This is a test.";    NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding];    [fileHandle writeData:contentData];    // 关闭文件    [fileHandle closeFile];        // 读取文件中的内容    fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];    NSData *readData = [fileHandle readDataToEndOfFile];    // data 转 NSString    NSString *readStr = [[NSString alloc] initWithData:readData encoding:NSUTF8StringEncoding];    NSLog(@"readStr = %@",readStr);    [fileHandle closeFile];    // 直接以NSString 的方式读取文件    NSString *contentStr = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];    NSLog(@"contentStr = %@",contentStr);}

文件的一些常规操作,如复制文件、删除文件、移动文件等:

- (void)testFileOperation{    // 获得临时目录    NSString *tempPath = NSTemporaryDirectory();    NSLog(@"tempPath = %@",tempPath);    // 最后一级目录    NSLog(@"last = %@", [tempPath lastPathComponent] );    // 在最后增加一级目录,原目录不变,返回一个新的目录字符串    NSLog(@"add last = %@",[tempPath stringByAppendingPathComponent:@"add"]);    // 删除最后一级目录,原目录不变,返回一个新的目录字符串    NSLog(@"del last = %@",[tempPath stringByDeletingLastPathComponent]);    NSString *filePath = [tempPath stringByAppendingPathComponent:@"test.txt"];    NSLog(@"filePath = %@",filePath);    // 扩展名,输出为 txt    NSLog(@"extension = %@",[filePath pathExtension]);    NSFileManager *manager = [NSFileManager defaultManager];    if(![manager fileExistsAtPath:filePath]){        [manager createFileAtPath:filePath contents:nil attributes:nil];    }        NSString *newPath = [tempPath stringByAppendingPathComponent:@"newtest.txt"];    // 拷贝文件    [manager copyItemAtPath:filePath toPath:newPath error:nil];    if([manager fileExistsAtPath:newPath]){        NSLog(@"copy success");    }    // 删除文件    [manager removeItemAtPath:newPath error:nil];    if(![manager fileExistsAtPath:newPath]){        NSLog(@"remove success");    }        // 文件是否可读    if([manager isReadableFileAtPath:filePath]){        NSLog(@"readable");    }    // 文件是否可写    if([manager isWritableFileAtPath:filePath]){        NSLog(@"writeable");    }}

 

转载于:https://www.cnblogs.com/acBool/p/5746090.html

你可能感兴趣的文章
工作笔记--哪些bug应由研发发现?
查看>>
python基础 知识点
查看>>
hdu 3409 最短路树+树形dp
查看>>
(ios开发学习笔记一)ios项目文件结构
查看>>
Spring中applicationContext.xml的bean里的id和name属性区别
查看>>
MTA---smtp(25,postfix,sendmail),Pop3(110,Devocot), MUA(foxmail) IMAP(server,client rsync)
查看>>
红黑树的删除详解与思路分析——不同于教科书上的算法(dart语言实现)
查看>>
汇编语言1
查看>>
冒泡排序
查看>>
node js学习记录
查看>>
02 EditView控件
查看>>
22 GridView 02
查看>>
如何将添加阿里云备案号并居中显示
查看>>
9 款赏心悦目的 HTML5/CSS3 特效
查看>>
8-cin cout PK scanf printf(速度快慢问题对比)
查看>>
Python学习目录
查看>>
C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
查看>>
网络三剑客
查看>>
推荐系统
查看>>
IIS7.5配置问题(Win7 Pro,64Bit)
查看>>