使用NSFileManager在复制文件期间更新进度栏

盖·卡隆

我复制文件,然后我的应用程序完成了从资源到缓存目录的启动。但我想在复制文件时更新进度条。

我使用以下代码复制文件:

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

我想不出一个好主意,如何根据复制文件的进度来更新进度条。

icodebuster

在较高级别,您可以采用以下方法:

  1. 在单独的线程(P1)中运行复制过程
  2. 运行另一个线程(P2),该线程定期(例如,每100毫秒)读取目标文件current_size
  3. 计算 current_size / total_size
  4. 更新您的进度栏UI元素

然后,您只想找出文件的大小,而实际上不必打开它。只是这样使用NSFileManager

NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:self.finalPath error:NULL];
unsigned long long fileSize = [attributes fileSize]; // in bytes

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android-通过更新进度栏下载文件

来自分类Dev

下载文件时我无法更新进度栏

来自分类Dev

更新进度栏-MVP模式

来自分类Dev

动态更新进度栏问题

来自分类Dev

如何逐步更新进度栏?

来自分类Dev

如何在复制文件期间创建进度栏

来自分类Dev

使用Java复制文件时的进度栏

来自分类Dev

使用百分比值更新进度栏?

来自分类Dev

Android-使用其他线程的值更新进度栏

来自分类Dev

使用 javascript 更新进度条

来自分类Dev

如何在长循环中更新进度栏?

来自分类Dev

如何从SwingWorker中的方法更新进度栏

来自分类Dev

如何在异步更新进度的同时将 blob 流成功复制到文件或文件流。?

来自分类Dev

进度条使用样式更新进度

来自分类Dev

使用VBScript的HTA冻结,并且在文件传输完成之前不会更新进度状态

来自分类Dev

使用ajax请求秒更新进度条

来自分类Dev

如何使用CKModifyRecordsOperation.perRecordProgressBlock更新进度

来自分类Dev

使用Firebase上传更新进度条

来自分类Dev

使用TPL异步更新进度条

来自分类Dev

使用复选框更新进度条:jQuery

来自分类Dev

如何使用CKModifyRecordsOperation.perRecordProgressBlock更新进度

来自分类Dev

使用Firebase上传更新进度条

来自分类Dev

如何更新进度条以显示活动期间的进度(一种方法有效时)?

来自分类Dev

从不更新进度栏的另一个类调用BackgroundWorker_ProgressChanged

来自分类Dev

JavaScript-更新进度栏-确保函数花费大量时间

来自分类Dev

在任务运行时以另一种形式更新进度栏

来自分类Dev

将数据从Servica发送到BroadcasReceiver以更新进度栏

来自分类Dev

Backgroundworker不会在单独的窗口中更新进度栏

来自分类Dev

复制时如何使用[NSFileManager defaultManager]覆盖文件夹?

Related 相关文章

  1. 1

    Android-通过更新进度栏下载文件

  2. 2

    下载文件时我无法更新进度栏

  3. 3

    更新进度栏-MVP模式

  4. 4

    动态更新进度栏问题

  5. 5

    如何逐步更新进度栏?

  6. 6

    如何在复制文件期间创建进度栏

  7. 7

    使用Java复制文件时的进度栏

  8. 8

    使用百分比值更新进度栏?

  9. 9

    Android-使用其他线程的值更新进度栏

  10. 10

    使用 javascript 更新进度条

  11. 11

    如何在长循环中更新进度栏?

  12. 12

    如何从SwingWorker中的方法更新进度栏

  13. 13

    如何在异步更新进度的同时将 blob 流成功复制到文件或文件流。?

  14. 14

    进度条使用样式更新进度

  15. 15

    使用VBScript的HTA冻结,并且在文件传输完成之前不会更新进度状态

  16. 16

    使用ajax请求秒更新进度条

  17. 17

    如何使用CKModifyRecordsOperation.perRecordProgressBlock更新进度

  18. 18

    使用Firebase上传更新进度条

  19. 19

    使用TPL异步更新进度条

  20. 20

    使用复选框更新进度条:jQuery

  21. 21

    如何使用CKModifyRecordsOperation.perRecordProgressBlock更新进度

  22. 22

    使用Firebase上传更新进度条

  23. 23

    如何更新进度条以显示活动期间的进度(一种方法有效时)?

  24. 24

    从不更新进度栏的另一个类调用BackgroundWorker_ProgressChanged

  25. 25

    JavaScript-更新进度栏-确保函数花费大量时间

  26. 26

    在任务运行时以另一种形式更新进度栏

  27. 27

    将数据从Servica发送到BroadcasReceiver以更新进度栏

  28. 28

    Backgroundworker不会在单独的窗口中更新进度栏

  29. 29

    复制时如何使用[NSFileManager defaultManager]覆盖文件夹?

热门标签

归档