我需要将文件从一个OS X卷复制到另一个OS X卷.虽然*.app严格来说不是文件而是文件夹,但用户希望它们是一个单元.因此,如果用户选择文件,则应用程序不应显示其文件夹的内容,而应将其作为一个单元进行复制.
因此,我问,是否存在使用纯Cocoa代码复制文件的推荐方法.
可选:哪个命令行工具提供帮助,Cocoa应用程序可以使用它.
我复制文件然后我的应用程序完成从资源启动到缓存目录.但我想在复制文件时更新我的进度条.
我使用以下代码复制文件:
-(BOOL)copyDirectory:(NSString*)source toDirectory:(NSString*)targat
{
BOOL retVal = YES;
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSError *error;
if ([fileManager fileExistsAtPath:targat] == YES)
{
NSError *error = nil;
[fileManager removeItemAtPath:targat error:&error];
}
if(![fileManager copyItemAtPath:source
toPath:targat
error:&error])
{
NSLog(@"Error copy files: %@", [error description]);
retVal = NO;
}
[fileManager release];
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
我想不出一个好主意,如何更新进度条根据复制文件的进度.
我正在尝试查找文件大小.
NSFileHandle *output = [NSFileHandle fileHandleForWritingAtPath:self.finalPath];
//seek to begin of the file
[output seekToFileOffset:0];
NSData *mydata = [output availableData];
NSLog(@"length: %d", [mydata length]);
Run Code Online (Sandbox Code Playgroud)
但我的长度是零到零.为什么?