0

我想在将文件从一个地方复制到另一个地方时使用进度条来显示进度。所以这里是复制文件的代码:

 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”?谢谢 !!

4

1 回答 1

7

您可以使用

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error

然后[dictObject valueForKey@"NSFileSize"];从文件属性字典中获取

于 2013-05-05T18:44:38.197 回答