博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C:用命令行参数的格式对文件进行IO操作
阅读量:6704 次
发布时间:2019-06-25

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

1 //  main.m 2  3 //  03-copyFile 4  5 //  Created by ma c on 15/8/24. 6  7 //  Copyright (c) 2015年. All rights reserved. 8  9 #import 
10 11 int main(int argc, const char * argv[])12 13 {14 @autoreleasepool15 {16 //1、检查参数17 if(argc < 3)18 {19 NSLog(@"用法:命令行 源文件 目标文件");20 return -1;21 }22 23 24 //2.检查源文件是否存在25 26 NSString *file1 = [NSString stringWithUTF8String:argv[1]];27 28 NSString *file2 = [NSString stringWithUTF8String:argv[2]];29 30 31 32 NSFileManager *fm = [NSFileManager defaultManager];33 34 BOOL isDirectory = YES;35 36 37 if(![fm fileExistsAtPath:file1 isDirectory:&isDirectory])38 {39 NSLog(@"源文件不存在");40 return -1;41 }42 else43 {44 if(isDirectory)45 {46 NSLog(@"不能拷贝目录");47 return -1;48 }49 50 51 //3.判断目标文件是否存在52 if(![fm fileExistsAtPath:file2 isDirectory:NULL])53 {54 [fm createFileAtPath:file2 contents:nil attributes:nil];55 }56 else57 {58 NSLog(@"是否要覆盖文件? 'y' or 'n'");59 char answer = getchar();60 if(answer != 'y')61 {62 return -1;63 }64 }65 66 67 68 //4.文件拷贝69 NSFileHandle *in = [NSFileHandle fileHandleForReadingAtPath:file1];70 71 NSFileHandle *out = [NSFileHandle fileHandleForWritingAtPath:file2];72 if(in && out)73 {74 while(YES)75 {76 NSData *data = [in readDataOfLength:100];77 if(!data || [data length]<=0)78 {79 break;80 }81 [out writeData:data];82 }83 }84 else85 {86 NSLog(@"文件打开失败");87 }88 89 90 91 //5.关闭文件92 [in closeFile];93 [out closeFile];94 }95 }96 return 0;97 }98 99

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4755886.html,如需转载请自行联系原作者
你可能感兴趣的文章
RxJava2 实战知识梳理(14) 在 token 过期时,刷新过期 token 并重新发起请求
查看>>
EventBus从源码角度来谈谈设计原理
查看>>
HTTP权威指南
查看>>
iOS开发笔记(三):消息传递与转发机制
查看>>
ApacheCN 翻译活动进度公告 2019.2.25
查看>>
Python缓存技术
查看>>
Metal入门(使用Metal画一个三角形)
查看>>
浅谈 iOS 应用启动过程
查看>>
Clang 之旅—[翻译]添加自定义的 attribute
查看>>
零基础学习Web开发的入门需要掌握哪些?
查看>>
慎用System.nanoTime()
查看>>
2017 移动端 iOS 年终工作总结-纯干货请自备酒水
查看>>
Android小知识-剖析OkHttp中的任务调度器Dispatcher
查看>>
switch的python实现
查看>>
Hybris UI的Route(路由)实现
查看>>
iOS探索:RunLoop本质、数据结构以及常驻线程实现
查看>>
算法的时间复杂度
查看>>
iOS独立开发者使用Bmob第三方后台服务初探
查看>>
共享适合移动端的“拾色器”插件
查看>>
《Java编程思想》笔记09------异常处理
查看>>