【问题标题】:iPhone File system operation questionsiPhone文件系统操作问题
【发布时间】:2012-04-06 07:29:12
【问题描述】:

我想从远程下载文件到临时文件夹

远程文件夹如:

http://remoteserver.com/abc/def/file1.txt
http://remoteserver.com/abc/file2.png
http://remoteserver.com/abc/pla/mnb/file3.html

文件夹结构如下:

tmpefolder/abc/def/file1.txt
tmpefolder/abc/file2.png
tmpefolder/abc/pla/mnb/file3.html

然后下载后,将文件移动到永久文件夹,并保持相同的文件夹结构

permanentfolder/abc/def/file1.txt
permanentfolder/abc/file2.png
permanentfolder/abc/pla/mnb/file3.html

最终删除临时文件夹中的所有文件

所以我的问题是:

  1. 从服务器下载多个文件的最佳方式是什么? (最好显示ASIHTTPRequest,其他方式显示也可以)

  2. 创建整个文件夹结构的简单方法?我是否必须通过“/”拆分文件夹路径并检查每个级别路径是否存在并创建它?

  3. 如何将整个临时文件夹内容复制到永久文件夹?是否可以通过 OS X 上的复制等操作来做到这一点?

  4. 另外,像 OS X 上的删除操作,一键删除临时文件夹?

谢谢!

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    1/ 你最好使用AFNetworkASIHTTPRequest 正在变老,不再维护。 AFNetwork 更现代,可以使用积木(“嗯,积木”,就像荷马所说的那样)。这里有很多例子,随便搜索一下。

    具体来说,AFNetwork 允许您将下载操作放在NSOperationQueue 中,您可以随意处理,例如并行下载 35 个文件,最多同时运行 4 个下载,并在一切完成后向您报告。

    2, 3, 4/ 查看NSFileManager 的参考。你需要的都在那里。

    【讨论】:

      【解决方案2】:

      使用以下代码创建所有文件的 .zip 以下载 .zip 表单服务器。 这将在 NSTemporaryDirectory 中创建您的文件夹。

       NSString *filePath = [NSString stringWithFormat:@"%@/FILENAME.zip",NSTemporaryDirectory()];
       [[NSFileManager defaultManager] createFileAtPath:filePath contents:[NSData dataWithContentsOfURL:[NSURL URLWithString:[obj valueForKey:@"zip_path"]]] attributes:nil];
      

      下载后移动文件夹到documentDirectory。

      [[NSFileManager defaultManager] moveItemAtPath:filePath toPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] error:nil];
      

      以下代码是从 temp 中删除文件

      [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2013-06-14
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        相关资源
        最近更新 更多