//
// main.m
// OC语言学习
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//复制文件和使用 NSProcessInfo 类
//NSProcessInfo类中包含了一些方法,允许你设置或检索正在运行的应用程序(即进程)的各种类型的信息
NSFileManager *fm;
NSString *source, *dest;
BOOL isDir;
NSProcessInfo *proc = [NSProcessInfo processInfo];
/*
argments方法返回一个字符串对象数组。
数组的第一个元素的进程名称,其余的元素是在命令行中输入的参数
*/
NSArray *args = [proc arguments];
fm = [NSFileManager defaultManager];
//检查命令行中的两个参数
if ([args count] != 3) {
NSLog(@"Usage: %@ src dest",[proc processName]);
return 1;
}
source = [args objectAtIndex:1];
dest = [args objectAtIndex:2];
//确定能够读取源文件
if ([fm isReadableFileAtPath:source] == NO) {
NSLog(@"不能读取%@",source);
return 2;
}
//目标文件是否是一个目录
//若是,添加源到目标的结尾
[fm fileExistsAtPath:dest isDirectory:&isDir];
if (isDir == YES) {
dest = [dest stringByAppendingPathComponent:[source lastPathComponent]];
}
//若目标文件已存在,则删除文件
/*
copyPath:ToPath:handler: 不允许重写文件
removeFileAtPath:handler:来删除目标文件,没有必要担心这个方法能否成功,因为如果目标文件不存在,它将失败
*/
[fm removeItemAtPath:dest error:NULL];
//执行复制
if ([fm copyItemAtPath:source toPath:dest error:NULL] == NO) {
NSLog(@"复制失败");
return 3;
}
}
return 0;
}
NSFileManager— NSProcessInfo类的使用
最新推荐文章于 2025-11-30 10:33:08 发布
本文介绍了一个Objective-C (OC) 语言中的简单文件复制程序。该程序利用了NSProcessInfo类来获取命令行参数,并使用NSFileManager进行文件操作。通过检查源文件的可读性和目标路径的存在状态,确保复制过程的正确执行。
1万+

被折叠的 条评论
为什么被折叠?



