我想在将文件从一个地方复制到另一个地方时使用进度条显示进度。所以这是复制文件的代码:
if([fileManager isReadableFileAtPath:sourcePath])
[fileManager copyItemAtPath:sourcePath toPath:destinationPath error:nil];
这是进度条的代码(我使用NSProgressIndicator):
// Set the max value to our source file size
[_localProgressIndicator setMaxValue:fileSizeTotal];
[_localProgressIndicator setDoubleValue:0.0];
//Start showing progress bar in using NSTime
if(!timerForProgressBar){
timerForProgressBar = [NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(checkCopyingPorgress:)
userInfo:nil
repeats:YES];
[_localProgressIndicator startAnimation:self];
}
-(void)checkCopyingPorgress:(NSTimer *)aTimer
{
if(fileCurrentSize >= fileSizeTotal)
{
fileCurrentSize = 0;
[aTimer invalidate];
aTimer = NULL;
[_localProgressIndicator setDoubleValue:0.0];
[_localProgressIndicator stopAnimation: self];
}
else
{
[_localProgressIndicator setDoubleValue: fileCurrentSize/100.0];
[_localProgressIndicator displayIfNeeded];
}
}
所以我的问题是当我将文件从一个地方复制到另一个地方时,如何从fileManager获取“fileCurrentSize”?谢谢 !!
答案 0 :(得分:7)
您可以使用
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
然后从文件属性字典
中获取[dictObject valueForKey@"NSFileSize"];