如何多次解压同一个 zip 文件?
How to unzip the same zip file multiple times?
我正在开发一个 zip 提取器应用程序,如果我多次解压同一个 zip 文件,它应该提取像 myfile-1、myfile-2、myfile-3 这样的东西。
示例:当我解压缩时,我的桌面上有 sampleproject.zip,它应该类似于 sampleproject、sampleproject-1、sampleproject-2。
有什么建议么。
提前致谢!
根据您的评论,我建议您将文件解压缩到一个临时目录,然后将其内容移动到实际目录,同时处理任何名称冲突。大纲:
使用URLForDirectory:inDomain:appropriateForURL:create:error:
创建一个适合解压的临时目录。您应该将 destinationPath
的 URL 传递给 appropriateForURL:
参数;这应该会为您提供一个与 destinationPath
在同一卷上的临时目录,从而将解压缩的项目放置在正确的位置 moves 而不是 copies .
解压到(1)返回的临时目录
- 现在使用
NSFileManager
调用遍历临时目录,将找到的每个项目移动到 destinationPath
,根据需要重命名以避免名称冲突。
- 删除临时目录。
如果您在实施此算法时遇到问题,请提出一个新问题,显示您的代码,解释您的问题,并在 link 返回此问题以便跟进该线程。下一步肯定会有人帮助你。
HTH
我正在开发一个 zip 提取器应用程序,如果我多次解压同一个 zip 文件,它应该提取像 myfile-1、myfile-2、myfile-3 这样的东西。 示例:当我解压缩时,我的桌面上有 sampleproject.zip,它应该类似于 sampleproject、sampleproject-1、sampleproject-2。 有什么建议么。 提前致谢!
根据您的评论,我建议您将文件解压缩到一个临时目录,然后将其内容移动到实际目录,同时处理任何名称冲突。大纲:
使用
URLForDirectory:inDomain:appropriateForURL:create:error:
创建一个适合解压的临时目录。您应该将destinationPath
的 URL 传递给appropriateForURL:
参数;这应该会为您提供一个与destinationPath
在同一卷上的临时目录,从而将解压缩的项目放置在正确的位置 moves 而不是 copies .解压到(1)返回的临时目录
- 现在使用
NSFileManager
调用遍历临时目录,将找到的每个项目移动到destinationPath
,根据需要重命名以避免名称冲突。 - 删除临时目录。
如果您在实施此算法时遇到问题,请提出一个新问题,显示您的代码,解释您的问题,并在 link 返回此问题以便跟进该线程。下一步肯定会有人帮助你。
HTH