Скопируйте файл из одного места в другое, используя индикатор выполнения в Objective-c

Я хочу использовать индикатор выполнения, чтобы показать прогресс при копировании файла из одного места в другое. Итак, вот код для копирования файла:

 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];
  }
}

Так что мой вопрос, как получить "fileCurrentSize" из fileManager, когда я копирую файл из одного места в другое?? Спасибо!!

1 ответ

Решение

Вы можете использовать

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

а затем получить [dictObject valueForKey@"NSFileSize"]; из словаря свойств файла

Другие вопросы по тегам