ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Foundation框架中的NSFileManager二

2021-10-31 20:00:19  阅读:215  来源: 互联网

标签:Foundation 框架 文件 NSLog NSString file NSFileManager path


 

看官们,我们在前面章回中介绍了Foundation框架中的NSFileManager,本章回中将继续介绍它。
我们在上一章回中主要介绍了目录相关的操作,本章回中主要介绍文件相关的操作。

创建文件

- (BOOL)createFileAtPath:(NSString *)path
                contents:(NSData *)data
              attributes:(NSDictionary<NSFileAttributeKey, id> *)attr;


该方法可以创建一个文件,如果创建成功就返回YES,否则返回NO,文件的名字和所在的位置位于第一个参数path中,文件的内容位于第二参数data中,文件的属性位于第三个参数attr中,我们通常将其值设置为nil,表示使用系统默认的文件属性。 我的系统上默认文件属性为:-rw-r--r--。通常情况下,如果没有修改系统文件的默认属性,大家看到的文件属性和我的一样,大家可以动手试试 。


删除文件


- (BOOL)removeItemAtPath:(NSString *)path
                   error:(NSError * _Nullable *)error;


这个方法我们在上一章回中介绍过,使用时只需要把参数path中的目录替换成文件就可以,我们在这里就不详细介绍了,不过在示例代码中我们演示了具体的用法,大家可以参考示例代码。

查找文件是否存在
 

- (BOOL)fileExistsAtPath:(NSString *)path;


这个方法我们在上一章回中介绍过,使用时只需要把参数path中的目录名替换成文件名就可以,我们在这里就不详细介绍了。 这里强调一下,该方法既可以用来判断目录是否存在也可以判断文件是否存在。


判断文件的属性

- (BOOL)isReadableFileAtPath:(NSString *)path;
- (BOOL)isWritableFileAtPath:(NSString *)path;
- (BOOL)isExecutableFileAtPath:(NSString *)path;


这三个方法用来判断文件的读写和执行属性,这点从方法的名字中也可以看出来,它们的用法相同,使用这些方法时只需要在参数path中指定一个文件,然后通过方法的返回值返回该文件的属性。如果返回值为YES表示文件具有该属性,否则表示文件不具有该属性。


看官们,上面介绍的是NSFileManager类中关于文件操作的方法,接下来我们通过代码来演示如何使用这些方法。下面是具体的代码:

#include<Foundation/Foundation.h>

int main()
{
	//创建NSFileManager对象
	NSFileManager *fm = [NSFileManager defaultManager];

	//创建文件并且判断是否创建成功
	NSString *path = @"/Users/wangyuan/code/oc/a.c";
	char buffer[5] = "hello";
	NSData *data = [[NSData alloc] initWithBytes:buffer length:5];
	BOOL result = [fm createFileAtPath:path contents:data attributes:nil];
	if(result) {
		NSLog(@"create file successfully");
	} else {
		NSLog(@"create file failed");
	}

	//判断文件的读写和执行属性
	if([fm isReadableFileAtPath:path]) {
		NSLog(@"file is readable");
	}else {
		NSLog(@"file is not readable");
	}

	if([fm isWritableFileAtPath:path]) {
		NSLog(@"file is writable");
	}else {
		NSLog(@"file is not writable");
	}

	if([fm isExecutableFileAtPath:path]) {
		NSLog(@"file is executable");
	}else {
		NSLog(@"file is not executable");
	}

	//删除文件并且判断是否删除成功
	result = NO;
	result = [fm removeItemAtPath:path error:nil];
	if(result) {
		NSLog(@"delete file successfully");
	} else {
		NSLog(@"delete file failed");
	}

	return 0;
}

 
在代码中我们添加了相关的注释,以方便大家理解代码。程序中的内容比较少,大家可以直接判断出运行结果,因此我们就不展示程序运行结果了,不过大家一定要自己动手是运行程序,一边分析代码,一边对比程序运行结果是否符合代码逻辑。


最后我们对本章回的内容做一个总结:

  • 1.掌握创建、删除、查找文件的方法,在创建或删除文件前最好查找文件是否存在;
  • 2.掌握判断文件是否具有读写执行属性的方法,这些方法在程序中经常使用;
  • 3.NSFileManager类中还其它操作文件的方法,比如复制、移动等,建议大家查看官方文档;


看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解!

标签:Foundation,框架,文件,NSLog,NSString,file,NSFileManager,path
来源: https://blog.csdn.net/talk_8/article/details/121060650

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有