一、NSFileManager的其他常用方法——创建文件 1.在指定的目录创建文件 - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; 例如,我现在想要干嘛呢,想要在桌面上创建1个文件 先拿到manager对象啊, FileManager *manager = [FileManager defaultManager]; //创建1个文件很简单,就调用这个文件管理员的方法,叫做createFileAtPath [manager createFileAtPath:(nonnull NSString *)path contents:(nullable NSData *) attributes:(nullable NSDictionary< NSString *,id> *)]; 第一个参数:(nonnull NSString *)path,不用解释了,是不是路径, 这个是路径啊,就是你创建的这个文件在哪儿, 我给个桌面上的路径, @“/Users/Apple/Desktop/haha.txt” 第二个参数:contents:(nullable NSData *),就是这个文件的内容, 第三个参数:attributes:(nullable NSDictionary< NSString *,id> *) 就是这个文件的属性, 就是你创建这个文件的时候,你可以指定这个文件的属性,例如,你可以指定这个文件的创建时间,修改时间,你都可以指定的啊, 但是你如果说,你不想指定,你就希望它用系统的默认值,那就给个什么呢,给个nil 给个nil,它就使用系统的默认值了, 我要说的重点是第二个参数:contents:(nullable NSData *) 我们刚刚说,第二个参数什么意思啊,是不是这个文件的内容啊,那这个文件的内容,能不能给个字符串呢, 不能,为什么,因为这个参数是什么类型的,NSData类型的,记住,这个需要你理解一下啊,这个NSData是什么意思, 存储在我们这个磁盘上的任何文件,都是以二进制的形式存储的, 所以第二个参数什么参数呢,要求你给这个文件的二进制数据, 就是这个文件的二进制数据是什么,你把那个二进制数据给我就可以了, 所以,第二个参数是文件的内容,要求是文件的二进制的内容, NSData对象,就是专门用来保存二进制数据的, 问题来了,二进制,我靠,我怎么写啊, 你会写吗,不会 那怎么办呢,很简单, 例如,我有个字符串,NSString *str = @“上海浦东区中山路23号” 这个字符串提供一个方法,这个字符串本身自己有一个方法,它可以把这个字符串转成二进制,也就是说,把这个字符串转成一个二进制数据,什么类型的,NSData类型的, 这个方法叫什么呢,叫dataUsingEncoding,这个方法的签名如下: - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding 你看它返回一个什么东西,NSdata对象,是不是返回一个二进制数据啊