ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:750.59KB ,
资源ID:3555254      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3555254.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(文件操作.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

文件操作.docx

1、文件操作文件操作管理文件(NSFileManager)path必须是NSString,可以使用表示用户的主目录,NSFileManager提供的操作文件的方法有:P207一个操作文件的例子/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, const char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSString *fi

2、leName = file; NSFileManager *fm; NSDictionary *nsd; fm = NSFileManager defaultManager; if (fm fileExistsAtPath:fileName = NO) NSLog(文件并不存在); return 1; else if (fm copyPath:fileName toPath:file1 handler:nil = NO) NSLog(文件不能拷贝); return 1; else if (fm contentsEqualAtPath:fileName andPath:file1 = NO) N

3、SLog(文件不相等); return 1; else if (fm movePath:fileName toPath:file2 handler:nil = NO) NSLog(文件不能重命名); return 1; else if (nsd = fm fileAttributesAtPath:file2 traverseLink:NO) = nil) NSLog(不能得到文件属性); return 1; else if (nsd != nil) for (NSString *str in nsd) NSLog(% : %, str, nsd objectForKey:str); else

4、if (fm removeFileAtPath:fileName handler:nil = NO) NSLog(删除文件出错); return 1; NSLog(程序正常运行); / 输出文件里面的string NSLog(%, NSString stringWithContentsOfFile:file2 encoding:NSUTF8StringEncoding error:nil); pool release; return 0; 首先执行这个程序,必须保证生成的程序目录下有file这个文件,可以在xcode选择other创建出来,然后在里边写上:“hello,”“hello,”“he

5、llo,”结果可以看到输出:管理目录P210一个例子/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, const char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSString *dirName = dir1; NSFileManager *fm; NSString *path; NSDirectoryEnumerat

6、or *dirEnum; NSArray *dirArray; fm = NSFileManager defaultManager; path = fm currentDirectoryPath; NSLog(当前的目录是:%, path); if (fm createDirectoryAtPath:dirName attributes:nil = NO) NSLog(目录创建失败); return 1; else if (fm movePath:dirName toPath:dir2 handler:nil = NO) NSLog(目录重命名失败); return 1; else if (f

7、m changeCurrentDirectoryPath:Lee = NO) NSLog(设置目录失败); return 1; path = fm currentDirectoryPath; NSLog(经过修改之后的目录为:%, path); NSLog(使用enumeratorAtPath:方法枚举目录:); dirEnum = fm enumeratorAtPath:path; while (path = dirEnum nextObject) != nil) NSLog(%, path); NSLog(使用directoryContentsAtPath:方法枚举目录); dirArra

8、y = fm directoryContentsAtPath:fm currentDirectoryPath; for (path in dirArray) NSLog(%, path); pool release; return 0;需要保证在生成程序的目录底下有Lee的文件夹,里面有几个文件。这是输出:操作文件数据(NSData)在基础框架中,可以使用NSData类来设置缓冲区,换句话说,可以把NSData对象当做缓冲区:P213/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights

9、 reserved./#import int main(int argc, const char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSFileManager *fm; NSData *data; fm = NSFileManager defaultManager; data = fm contentsAtPath:readMe; if (data = nil) NSLog(文件不能读取); return 1; else if (fm createFileAtPath:readMe1 contents

10、:data attributes:nil = NO) NSLog(文件不能创建); return 1; NSLog(拷贝后的文件内容为:); NSLog(%, NSString stringWithContentsOfFile:readMe1 encoding:NSUTF8StringEncoding error:nil); pool release; return 0;首先执行这个程序,必须保证生成的程序目录下有readMe这个文件,可以在xcode选择other创建出来,然后在里边写上:“hello, ”“hello, ”“hello, ”结果可以看到输出:操作目录总结 有时需要在程序中获

11、得临时目录来创建一些临时文件,或者从主目录中读取文件。NSTemporaryDirectory方法就是返回临时目录。相关方法:P215例子/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, const char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSFileManager *fm; NSString *fName =

12、readMe.h; NSString *path, *tempDir, *extDir, *homeDir, *fullPath; NSString *testPath = Lee/sam/lee/./readMe.h; NSArray *dirArray; fm = NSFileManager defaultManager; tempDir = NSTemporaryDirectory(); NSLog(临时文件的目录为:%, tempDir); path = fm currentDirectoryPath; NSLog(当前的文件目录是:%, path lastPathComponent)

13、; fullPath = path stringByAppendingPathComponent:fName; NSLog(添加一个带扩展名的文件%后的完整路径为:%, fName, fullPath); extDir = fullPath pathExtension; NSLog(路径%的扩展名是%, fullPath, extDir); homeDir = NSHomeDirectory(); NSLog(用户根目录为%, homeDir); dirArray = homeDir pathComponents; for (path in dirArray) NSLog(%, path);

14、NSLog(% , testPath stringByStandardizingPath); pool release; return 0; 输出为:文件的读写(NSFileHandle)有时需要更精确地处理文件中的内容,比如,每次读写文件中的几个字符。这就需要使用NSFileHandle类。方法有:P217一个例子/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, const char * argv) NSA

15、utoreleasePool *pool = NSAutoreleasePool alloc init; NSFileHandle *file1, *file2; NSData *fd; file1 = NSFileHandle fileHandleForReadingAtPath:readMe; if (file1 = nil) NSLog(打开文件进行读取操作失败!); return 1; NSFileManager defaultManagercreateFileAtPath:readMe1 contents:nil attributes:nil; file2 = NSFileHandl

16、e fileHandleForWritingAtPath:readMe1; if (file2 = nil) NSLog(打开文件进行写入操作失败); return 1; file2 truncateFileAtOffset:0; fd = file1 readDataToEndOfFile; file2 writeData:fd; NSLog(将文件1读取的内容写入文件2以后:); NSLog(%, NSString stringWithContentsOfFile:readMe1 encoding:NSUTF8StringEncoding error:nil); file2 seekToE

17、ndOfFile; file2 writeData:fd; NSLog(将我们的文件1的内容拷贝到文件2的末尾后:); NSLog(%, NSString stringWithContentsOfFile:readMe1 encoding:NSUTF8StringEncoding error:nil); file1 closeFile; file2 closeFile; pool release; return 0; 必须保证生成的程序目录下有readMe这个文件(否则会出现打开失败),可以在xcode选择other创建出来,然后在里边写上:“hello, ”“hello, ”“hello,

18、”进程信息(NSProcessInfo) NSProcessInfo类用于获取当前正在执行的进程信息,比如,当前机器的名称、操作系统类型等,常用方法:P220一个例子/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, const char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSProcessInfo *proc = N

19、SProcessInfo processInfo; NSArray *args = proc arguments; for (NSString *str1 in args) NSLog(当前进程的参数为:%, str1); NSString *pn = proc processName; NSString *hn = proc hostName; NSLog(当前进程的进程名为%,进程的主机名%, pn, hn); NSString *osn = proc operatingSystemName; NSInteger os = proc operatingSystem; NSString *o

20、svs = proc operatingSystemVersionString; NSLog(当前系统的名称为:%操作系统代表数字为:%li 当前系统的版本号为:%, osn, os, osvs); pool release; return 0;综合使用了NSArray、NSProcessInfo、NSCountedSet以及NSEnumeratorP221/ main.m/ test/ Created by Zeng on 13-5-24./ Copyright (c) 2013年 zeng. All rights reserved./#import int main(int argc, c

21、onst char * argv) NSAutoreleasePool *pool = NSAutoreleasePool alloc init; NSArray *arr = NSProcessInfo processInfoarguments; NSCountedSet *cset1 = NSCountedSet allocinitWithArray:arr; NSArray *sorted_arr = cset1 allObjectssortedArrayUsingSelector:selector(compare:); NSEnumerator *enmr = sorted_arr objectEnumerator; id letter; while (letter = enmr nextObject) printf(%sn, letter UTF8String); cset1 release; pool release; return 0; 在控制台下执行test程序,输入几个字母,然后回车程序使用了NSCountedSet的initWithArray方法将保存在数组中的参数,存入NSCountedSet对象中,这样的操作会去除重复的参数:NSCountedSet *cset1 = NSCountedSet allocinitWithArray:arr;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1