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

     2023-04-01     271

关键词:

【中文标题】使用 NSFileManager 在复制文件期间更新进度条【英文标题】:update progress bar during copy file with NSFileManager 【发布时间】:2013-07-06 19:39:07 【问题描述】:

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

我用下面的代码复制文件:

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

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

【问题讨论】:

【参考方案1】:

在高层次上,你可以接近以下:

    在单独的线程中运行复制过程 (P1) 运行另一个线程 (P2),它会定期(比如每 100 毫秒)读取目标文件 current_size。 计算current_size / total_size 更新进度条 UI 元素

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

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

【讨论】:

您是否有示例代码演示如何在一个单独的线程中复制,该线程会告诉您何时完成复制

NSFileManager:复制文件不成功

】NSFileManager:复制文件不成功【英文标题】:NSFileManager:Copyfilenotsuccess【发布时间】:2013-03-2207:40:50【问题描述】:我想将位于/Library的文件复制到文件夹/User/Library/AddressBook/Sample/,我用过:[[NSFileManagerdefaultManager]copyItemAtPath:@"/L... 查看详情

在使用 --files-from 复制期间使用 rsync 重命名文件?

】在使用--files-from复制期间使用rsync重命名文件?【英文标题】:Usingrsynctorenamefilesduringcopyingwith--files-from?【发布时间】:2010-11-2116:41:44【问题描述】:使用rsync,在使用--files-from参数进行复制时如何重命名文件?我有大约190,000... 查看详情

NSFileManager:如果存在重复文件

】NSFileManager:如果存在重复文件【英文标题】:NSFileManager:duplicatefileifexists【发布时间】:2013-02-2708:46:42【问题描述】:复制文件时,我希望在我的iOS应用程序中使用OSX行为:如果存在,请在其上附加一个计数器:myFile.png=>myF... 查看详情

NSFileManager 线程安全

】NSFileManager线程安全【英文标题】:NSFileManagerThreadSafe【发布时间】:2014-05-1823:51:22【问题描述】:根据Apple的文档,NSFileManager在执行基本文件操作时是线程安全的:"共享的NSFileManager对象的方法可以安全地从多个线程调用。但... 查看详情

在 iOS 中使用 NSFileManager 写入文件

】在iOS中使用NSFileManager写入文件【英文标题】:WritingfilewithNSFileManageriniOS【发布时间】:2014-11-2616:24:27【问题描述】:(我的母语不是英语。抱歉我的英语不好......)我之前用这段代码成功写过文件。//workedcode...NSArray*paths=NSSear... 查看详情

NSFileManager 是不是将修改日期等元数据与文件一起复制?

】NSFileManager是不是将修改日期等元数据与文件一起复制?【英文标题】:DoesNSFileManagercopymetadatalikemodificationdatesalongwithfiles?NSFileManager是否将修改日期等元数据与文件一起复制?【发布时间】:2019-12-1815:55:26【问题描述】:[NSFileM... 查看详情

NSFileManager UUID 应用目录

】NSFileManagerUUID应用目录【英文标题】:NSFileManagerUUIDappdirectory【发布时间】:2013-03-2623:49:07【问题描述】:我正在使用NSFileManager,我正在尝试将文件复制到路径“/var/mobile/Applications/7AC2295E-2775-41EA-B017-AB4048A09F0C/Document”,该文件... 查看详情

NSFileManager 在文件夹中搜索图像文件

】NSFileManager在文件夹中搜索图像文件【英文标题】:NSFileManagertosearchimagefileinfolder【发布时间】:2013-01-3102:56:38【问题描述】:我正在使用NSFileManager搜索“index.png”文件。如果文件不存在,那么我正在尝试显示默认图像。我正... 查看详情

没有使用 NSFileManager 移动文件

】没有使用NSFileManager移动文件【英文标题】:FilesarenotbeingmovedusingNSFileManager【发布时间】:2016-01-1804:05:03【问题描述】:我正在尝试使用NSFileManager将文件从Documents/Inbox文件夹移动到Documents文件夹。我使用断点来找出我的代码没... 查看详情

MSBuild 在 _CopyOutOfDateSourceItemsToOutputDirectory 期间复制依赖项目文件

...间】:2016-03-0722:19:31【问题描述】:我有一个C#项目,它使用sln文件中的项目依赖项来确保构建顺序正确。所以我的 查看详情

如何在编译期间编辑可执行文件而不更改其源? [复制]

...显示当前年份(2014),而不是前一年(2013)。我尝试过使用sed函数,但它仅在以下情况下才有 查看详情

在编译期间监视文件复制

】在编译期间监视文件复制【英文标题】:Monitorfilecopyduringcompilation【发布时间】:2012-05-2913:54:09【问题描述】:我曾经在我的项目中有一些构建后事件和构建事件之后,我用它来复制文件。我也有CopyLocal=true。我正在删除所有... 查看详情

NSFileManager:使用通配符导航目录

】NSFileManager:使用通配符导航目录【英文标题】:NSFileManager:Usingwildcardstonavigatedirectories【发布时间】:2011-03-2904:05:48【问题描述】:嘿,我需要能够在目录结构中导航,例如;\'/文件夹/文件夹2/gehrjne/文件夹3\'\'folder2\'包含一堆... 查看详情

在构建期间将文件从 GCS 复制到 Cloud Run docker 容器中

...:2021-03-0605:46:32【问题描述】:我正在尝试在构建步骤中使用gsutil将文件从GCS复制到运行容器中。我尝试过的步骤:RUNpipinstallgsutilRUNgsutil-mcp-rgs://BUCKET_NAME 查看详情

使用 NSFileManager 访问 mac 共享上的文件

】使用NSFileManager访问mac共享上的文件【英文标题】:AccessfileonmacshareusingNSFileManager【发布时间】:2012-07-2507:04:34【问题描述】:我需要访问托管在mac共享文件夹上的共享文件,但是当我直接将路径传递给NSFileManager时,它报告为... 查看详情

在 iCloud 中使用预先存在的 NSFileManager 代码

】在iCloud中使用预先存在的NSFileManager代码【英文标题】:UsingPre-ExistingNSFileManagerCodewithiCloud【发布时间】:2012-06-1823:26:33【问题描述】:我刚刚编写了几百行代码,用于在我的iOS应用程序中保存文件、打开文件和删除文件……然... 查看详情

为啥 NSFileManager 不工作?

】为啥NSFileManager不工作?【英文标题】:WhyisNSFileManagernotworking?为什么NSFileManager不工作?【发布时间】:2011-08-2115:29:28【问题描述】:我编写了一些代码来将文件(dbtemplate.sqlite)从应用程序包复制到库。但是,库中没有文件显示... 查看详情

iOS NSFileManager使用URL而不是路径将文件存储在文档目录中?

】iOSNSFileManager使用URL而不是路径将文件存储在文档目录中?【英文标题】:iOSNSFileManagerStorefileinDocumentdirectoryusingURLsnotPaths?【发布时间】:2013-01-2013:52:37【问题描述】:Apple表示最好使用URL来访问手机中存储的文件。但我找不到... 查看详情