【发布时间】:2014-03-29 17:17:09
【问题描述】:
我一直在努力寻找解决方案来完成本应非常简单的任务。我需要将某种类型的文件(在这种情况下为所有 zip 文件)移动到另一个目录中。我已经尝试过 NSTask 和 NSFileManager 但都空了。我可以一次移动一个,但我想同时一次移动它们。
- (void)copyFilesTo :(NSString*)thisPath {
NSFileManager *manager = [NSFileManager defaultManager];
NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:thisPath];
NSString *filename = nil;
while ((filename = [direnum nextObject] )) {
if ([filename hasSuffix:@".zip"]) {
[fileManager copyItemAtPath:thisPath toPath:newPath];
}
}
}
失败 - 文件已复制 = zeroooo
- (void)copyFilesMaybe :(NSString*)thisPath {
newPath = [newPath stringByAppendingPathComponent:fileName];
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/find"];
[task waitUntilExit];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: thisPath, @"-name", @"*.zip", @"-exec", @"cp", @"-f", @"{}", newPath, @"\\", @";", nil];
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
}
同样悲惨的结果,没有文件被复制。我到底做错了什么?
【问题讨论】:
标签: objective-c macos cocoa nsfilemanager nstask