我有一个非常基本或一般性的问题,但我遇到了一些问题,找到答案。我使用System.IO.Compression
来管理文件类型为.zip
的drop文件夹中的文件。如何解压缩文件,并在打开过程中重命名所有打包文件?我看到如何解压缩它们,但如果我不能重命名它们,可能会破坏或覆盖其他重复文件。
是使用“条目”方法跟踪您触摸的文件的唯一方法,然后发送到临时文件,然后重命名,并将它们放在它们原来的位置?我会假设我可以在打开过程中进行命名,而没有额外的步骤。如果没有,或者我遗失了什么,我为帖子道歉。
答案 0 :(得分:2)
ZipArchiveEntry
类有一个ExtractToFile(string destinationFileName)
方法(好吧,它实际上是一种扩展方法),它允许您保存到任何名称的文件,而不仅仅是存储在zip文件中的文件名。
肯定会有更多的工作,因为你必须先自己创建子目录,然后再将文件内容提取给它们,但是比一次性提取整个存档更能控制你。
答案 1 :(得分:1)
请参阅MSDN上的ZipFileExtraction条目。您可以将false作为overwrite
参数传递,然后捕获IO异常并相应地重命名该文件。当然,由于文章中指定的其他原因,可能会抛出IO异常,因此您必须根据用例区分它们。