【发布时间】:2017-10-26 21:46:53
【问题描述】:
我尝试在我的项目中使用以下代码但没有成功,这让我发疯。
System.IO.Compression.ZipFile.ExtractToDirectory(filePath, appPath);
参数为:
filePath = "/storage/emulated/0/Flashback_Backup/memory_backup.zip"
appPath = "/storage/emulated/0/Flashback"
根据文档here IOException 应在以下情况下抛出:
destinationDirectoryName 指定的目录已经存在。 - 或- 存档中的条目名称为空、仅包含空格或包含至少一个无效字符。 - 或 - 提取存档条目将创建一个位于由 destinationDirectoryName 指定的目录之外的文件。 (例如, 如果条目名称包含父目录,则可能会发生这种情况 访问者。) - 或- 要提取的存档条目与已从同一存档中提取的条目具有相同的名称。
据我所知,这些都不适用。该 zip 文件是一个完全有效的文件,我使用 Directory.CreateDirectory 方法对其进行了压缩,并且仅包含几个唯一命名的 JSON 文件。我也尝试过使用和不使用现有的“闪回”文件夹,但似乎没有任何效果。
如果有人有任何想法或解决方案,请告诉我,因为我对此非常迷茫。如果需要,我可以提供更多信息。
【问题讨论】:
-
你检查你的权限了吗?
-
我添加了 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 以及一些不相关的。我觉得应该够了,还是我错过了什么?