当前位置: 首页 > 编程日记 > 正文

object-c中管理文件和目录:NSFileManager使用方法

object-c中管理文件和目录:NSFileManager使用方法

对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。

相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。

完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。

这个特殊字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“  .. ”表示父目录

下面是常见的NSFileManager文件方法:

NSFileManager处理文件的方法

下面是一些基本的文件操作的代码示例:

[plain] view plaincopyprint?
  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[])
  3. {
  4. @autoreleasepool {
  5. NSString *fName = @"testfile.txt";
  6. NSFileManager *fm ;
  7. NSDictionary * attr;
  8. //创建文件管理对象
  9. fm = [NSFileManager defaultManager];
  10. //判断文件是否存在
  11. if([fm fileExistsAtPath:fName] == NO)
  12. {
  13. NSLog(@"File doesn't exist!");
  14. return 1;
  15. }
  16. //将 testfile.txt 文件拷贝出一个新的文件 newfile.txt
  17. if([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO)
  18. {
  19. NSLog(@"File copy failed!");
  20. return 2;
  21. }
  22. //判断两个文件内容是否相等
  23. if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO)
  24. {
  25. NSLog(@"File are not equal!");
  26. return 3;
  27. }
  28. //将文件 newfile.txt 重命名为 newfile2.txt
  29. if([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO)
  30. {
  31. NSLog(@"File rename failed!");
  32. return 4;
  33. }
  34. //获取文件 newfile2.txt 的大小,并输出
  35. if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil)
  36. {
  37. NSLog(@"Couldn't get file attributes!");
  38. return 5;
  39. }
  40. NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]);
  41. //移出原始文件testfile.txt
  42. if([fm removeFileAtPath:fName handler:nil] == NO)
  43. {
  44. NSLog(@"File removal failed!");
  45. return 6;
  46. }
  47. NSLog(@"All operations were successful!");
  48. //输出文件内容
  49. NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]);
  50. }
  51. return 0;
  52. }
#import <Foundation/Foundation.h>int main(int argc, const char * argv[])
{@autoreleasepool {NSString *fName = @"testfile.txt";NSFileManager *fm ;NSDictionary * attr;//创建文件管理对象fm = [NSFileManager defaultManager];//判断文件是否存在if([fm fileExistsAtPath:fName] == NO){NSLog(@"File doesn't exist!");return 1;}//将 testfile.txt 文件拷贝出一个新的文件 newfile.txtif([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO){NSLog(@"File copy failed!");return 2;}//判断两个文件内容是否相等if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO){NSLog(@"File are not equal!");return 3;}//将文件 newfile.txt 重命名为 newfile2.txtif([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO){NSLog(@"File rename failed!");return 4;}//获取文件 newfile2.txt 的大小,并输出if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil){NSLog(@"Couldn't get file attributes!");return 5;}NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]);//移出原始文件testfile.txtif([fm removeFileAtPath:fName handler:nil] == NO){NSLog(@"File removal failed!");return 6;}NSLog(@"All operations were successful!");//输出文件内容NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]);}return 0;
}



posted on 2013-03-09 00:13 江宇旋 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/jiangyuxuan/archive/2013/03/09/2950988.html

相关文章:

python实现ssh登录send_Python实现ssh批量登录并执行命令

局域网内有一百多台电脑&#xff0c;全部都是linux操作系统&#xff0c;所有电脑配置相同&#xff0c;系统完全相同(包括用户名和密码)&#xff0c;ip地址是自动分配的。现在有个任务是在这些电脑上执行某些命令&#xff0c;者说进行某些操作&#xff0c;比如安装某些软件&…

传Exchange 15将于今年9月发布

Microsoft Exchange Conference &#xff08;简称MEC&#xff09;是微软公司所举办的有关Exchange Server软件的主题会议&#xff0c;但它在过去的十年间一直没有举行。今年的9月24-26日&#xff0c;微软将在佛罗里达州重新启动MEC并展示Exchange 15。根据ZDNet报道&#xff0c…

Django进阶之session

基于cookie做用户验证时&#xff1a;敏感信息不适合放在cookie中 session依赖cookie session原理 cookie是保存在用户浏览器端的键值对 session是保存在服务器端的键值对 session服务端中存在的数据为&#xff1a; session {随机字符串1&#xff1a;{用户1的相关信息}随机字符…

python画美女代码_教你用python爬取网站美女图(附代码及教程)

我前几篇文章都是说一些python爬虫库的用法&#xff0c;还没有说怎样利用好这些知识玩一些好玩的东西。那我今天带大家玩好玩又刺激的&#xff0c;嘻嘻&#xff01;对了&#xff0c;requests库和正则表达式很重要的&#xff0c;一定要学会&#xff01;一定要学会&#xff01;&a…

Python基础学习3

6 模块和包 (1) 命名以.py结尾的文件就是Python模块 Python的包就是一个文件夹&#xff0c;至少有还有一个__init__.py的文件 包中可以有文件夹&#xff0c;文件夹中可以有包 (2) 文件的导入 每使用一个变量名或者函数时&#xff0c;就需要导入另一个文件 例&#…

CSS伪类 选择器

一、伪类:active/*被激活的元素*/:focus/*拥有键盘输入焦点的元素*/ :hover/*鼠标悬浮在元素上方时*/ :link/*未被访问的链接*/ :visited/*已被访问的链接*/ :first-child/*元素的第一个子元素*/ :lang/*带有指定 lang 属性的元素*/ CSS执行顺序是&#xff1a;lvcha link :hove…

svn中的revert和update

svn中的revert和update今天有人问到revert和update的问题。刚开始还真被问住了。因为感觉revert和update都可以将本地的copy更新到以前的一个版本&#xff0c;会有什么不同呢&#xff1f;查了些资料&#xff0c;并做了个试验&#xff0c;终于发现了它们的不同。假设当前最新的版…

BOM 浏览器对象模型和DOM 文档对象模型

浏览器对象模型BOM 1. 浏览器对象模型介绍 BOM(Browser Object Model) 是指浏览器对象模型&#xff0c;是用于描述这种对象与对象之间层次关系的模型&#xff0c;浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成&#xff0c;其中代表…

上交三月月赛[SJTU] 1106 sudoku

题目大意&#xff1a;给出一道数独题&#xff0c;判断该数独是否有解且有唯一解。 解题思路&#xff1a; 由前几题的难度得&#xff0c;此题的难度不会太过分&#xff0c;所以简单暴力就可以了&#xff0c;40ms用时一本满足。 简单地讲一下具体的实现&#xff0c;从左上开始从左…

C语言-三子棋游戏

C语言中用写头文件的方式写了一个三子棋游戏 1.测试函数text.c #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include"chess.h"void menu() {printf("*************…

取余运算怎么算_TensorFlow2.0(2):数学运算

点击“机器学习算法与Python实战”&#xff0c;“置顶”公众号重磅干货&#xff0c;第一时间送达TensorFlow2.0(1)&#xff1a;基本数据结构——张量1 基本运算&#xff1a;(、-、*、/、//、%) 基本运算中所有实例都以下面的张量a、b为例进行&#xff1a;import tensorflow as …

xen二进制安装

需要几台机器做集群测试,目前只有一台机器所以用xen来虚拟化几台机器出来 系统: centos5.6 安装xen yum install kernel-xen xen修改grub /boot/grub/grub.conf将default1改为default0 default0 timeout5 splashimage(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.…

python模块之json,pickle

序列化是指把内存里的数据转变成字符串&#xff0c;以使其能保存到硬盘上或者通过网络输送到远程。 序列化的两个模块&#xff1a; json:只能把python中的int/str/list/tuple/dict类型的数据&#xff0c;可以在不同的语言之间传递数据。Python和JavaScript数据对应关系&#xf…

关于如何在pc端使用github

http://www.bcwhy.com/thread-17636-1-1.html转载于:https://www.cnblogs.com/glgl2424/archive/2013/03/13/2956944.html

Python爬虫1-Scrapy环境的安装

一. Scrapy环境的安装 1. Scrapy各平台支持情况 除了python3在Windows下不支持外&#xff0c;其余&#xff08;Linux&#xff0c;Mac&#xff09;均支持 2. 安装miniconda (1)建议使用Python2&#xff0c;用miniconda安装scrapy (2)miniconda时Python环境管理工…

汉字笔画数据_统计学原理 数据的预处理

数据审核数据审核—原始数据(raw data)完整性审核应调查的单位或个体是否有遗漏所有的调查项目或变量是否填写齐全准确性审核数据是否真实反映实际情况&#xff0c;内容是否符合实际数据是否有错误&#xff0c;计算是否正确等数据审核—二手数据(second hand data)适用性审核弄…

SqlServer时间函数的使用例子整理

为什么80%的码农都做不了架构师&#xff1f;>>> 整理SqlServer2008的时间函数如下&#xff1a; 1.获取系统时间 select getdate(); --2012-05-06 22:26:49.950 select current_timestamp; --2012-05-06 22:26:49.950 select getutcdate(); --20…

bzoj 4710 [Jsoi2011]分特产 组合数学+容斥原理

题面 题目传送门 解法 考虑容斥原理 显然&#xff0c;我们可以枚举有多少个人没有收到 然后就转化成一个组合问题了 假设现在有\(x\)个物品&#xff0c;\(n\)个人&#xff0c;可以有人没有被分到&#xff0c;那么分给这\(n\)个人的方案数为\(nx-1\choose n-1\) 然后就是分别计算…

Python爬虫2-GET_POST与开发者工具

一. GET_POST与开发者工具 1. 浏览器的基本工作规则 浏览器请求访问服务器&#xff0c;服务器返回数据 (1) 请求的格式 GET&#xff1a;长度不能大于2k参数明文显示在地址栏&#xff0c;不保密&#xff0c;通常用在查询请求 POST:长度可以很大&#xff0c;参数写…

springcloud是什么_阿里P8道出,入职阿里必会199道SpringCloud面试题,你能掌握多少?...

前言Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 版本&#xff0c;到目前 2020 年 3 月发布 Hoxton.SR3 版本&#xff0c;已经历经了 4 年时间。这 4 年时间里&#xff0c;Spring Cloud 一共发布了 46 个版本&#xff0c;支持的组件数从 5 个增加到 21 个。Spring Cloud…

不一样的命令行 – Windows PowerShell简介

引子 一直很羡慕Linux的命令提示符&#xff08;当然他们叫Shell&#xff09;。正则表达式&#xff0c;管道&#xff0c;各种神奇的命令&#xff0c;组合起来就能高效完成很多复杂的任务。效率实在是高。流了n年的哈喇子以后&#xff0c;终于有幸用上了Win7&#xff0c;邂逅了cm…

excel中会计专用格式问题_解决方法

excel 2003在使用格式中当选择会计专用会出现负号在左,数字在右的情况.这类设置并不是在excel中完成,而是在控制面板,区域和语言选项---自定义中设置---货币中设置,-&#xffe5;1.1改为&#xffe5;-1.1就可以解决了.包括千位分割样式保留的小数点位数等都可以在这里进行设置来…

Spring.Net Aop

Spring.Net 有四种通知&#xff1a; IMethodBeforeAdvice&#xff0c;IAfterReturningAdvice&#xff0c;IMethodInterceptor&#xff0c;IThrowsAdvice BeforeAdvice 1 using System.Reflection;2 using Spring.Aop;3 public class BeforeAdvice : IMethodBefore…

Oracle to_char函数的使用方法

本文转载于:https://blog.csdn.net/mikyz/article/details/69397030 本文转载于:https://www.cnblogs.com/aipan/p/7941917.html 本文转载于:https://blog.csdn.net/jinlong5200/article/details/3135949 转载于:https://www.cnblogs.com/demon09/p/9485627.html

python装饰器教学_Python装饰器学习(九步入门)

这是在Python学习小组上介绍的内容&#xff0c;现学现卖、多练习是好的学习方式。第一步&#xff1a;最简单的函数&#xff0c;准备附加额外功能 # -*- coding:gbk -*-示例1: 最简单的函数,表示调用了两次def myfunc():print("myfunc() called.")myfunc()myfunc()第二…

跨平台表空间传输(linux 10g表空间跨平台迁移到window 11g)

最近公司的一个项目里的linux 系统中的oracle 10g数据库&#xff0c;需要把某个表空间里的所有数据都迁移到window 2003的11g里&#xff0c;经过我与dba的交流、测试&#xff0c;决定使用跨平台的表空间传输技术&#xff0c;目前此项任务已经完成&#xff0c;经过测试&#xff…

YY的GCD 莫比乌斯反演

&#xff5e;&#xff5e;&#xff5e;题面&#xff5e;&#xff5e;&#xff5e; 题解&#xff1a; $ans \sum_{x 1}^{n}\sum_{y 1}^{m}\sum_{i 1}^{k}[gcd(x, y) p_{i}]$其中k为质数个数 $$ans \sum_{i 1}^{k}\sum_{x 1}^{n}\sum_{y 1}^{m}[gcd(x, y) p_{i}…

python答辩结束语_Beta答辩总结

前言队名&#xff1a;拖鞋旅游队项目的链接与宣传项目总结原计划实现功能预期完成程度上传照片完美实现照片信息标注在地图上对于有地理信息的照片能够较为精确的定位足迹地图可视化能够用颜色区分出到到每个省份的程度以及显示到达的地点生成旅游故事能够生成不同的故事模板&a…

在一台电脑上使用两个github账号

问题描述&#xff1a; 我公司有一个github账号&#xff0c;每天工作把代码传上去&#xff0c;我觉得代码写的好&#xff0c;我同时想上传到自己的github账号上面去&#xff0c;但是目前只有一台电脑&#xff0c;如何在一台电脑上面进行设置&#xff0c;使这一台电脑可以同时上传…

[唐胡璐]QTP框架 - 关键字驱动测试框架之七 - Settings管理

这里主要是存放一些框架相关的Global设置的相关项&#xff0c;如图所示&#xff1a;转载于:https://www.cnblogs.com/yongfeiuall/archive/2013/03/18/4134155.html