Скопируйте файл из одного места в другое, используя индикатор выполнения в 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"];
из словаря свойств файла