【问题标题】:How to zip / unzip folders in VS2013?如何在 VS2013 中压缩/解压缩文件夹?
【发布时间】:2014-03-20 17:05:54
【问题描述】:

我正在尝试制作一个使用套接字将文件夹发送到另一个应用程序的应用程序,为了解决这个问题,压缩/解压缩文件夹可能是最好的选择。

请问VS2013如何压缩/解压文件夹?

提前致谢!

【问题讨论】:

  • -1 离题和重复。 SO不是问工具的地方。Take a look
  • 另外,如果您正在使用文件夹,请查看here可能有用。

标签: c++


【解决方案1】:

如果您想在 Visual Studio 中压缩/解压缩文件夹(在构建过程中),那么一种解决方案可能是使用 7za.exe 和预处理器或后处理器命令。您说“在 VS2013 中”,但也许您的意思是在运行时?如果是这样,那么我同意@Reed。

祝你好运。

【讨论】:

  • 感谢您的回复约翰,在@Reed 链接的库之前使用过吗?
  • 我有,如果您使用您的应用程序来阅读或生成档案,它们工作得很好。 7za 更灵活,更易于在应用程序外使用,但难以在程序内使用。
  • 我在运行时尝试这样做。你知道如何安装这些库吗,我试图在其中包含源代码,但这不起作用。我认为它适用于Linux环境。我目前使用的是 Windows / Visual Studio 2013。
  • libarchive 在他们的网站上有关于如何编译源代码的说明。从那里开始。下载 windows 版本,按照说明进行编译,获取输出库并将它们包含在您的项目中。然后按照 API 文档进行操作。
  • 请给我链接第一步'链接?
【解决方案2】:

您可以使用zzipliblibarchive 之类的库在发送前压缩数据,然后在接收端解压缩。这两个库都支持 zip 格式。

【讨论】:

  • 如何在另一边解压,我需要保存发送的完整字符串并创建一个 zip 文件,解压缩然后删除压缩文件吗?
  • @Luciekulza 通常你会直接从字节数据中工作。我相信这两个库都支持从内存中的字节数据解压缩/压缩。
  • 好的,非常感谢,我会试试的。关于安全性,您建议我使用 FTP 协议来传输文件夹还是使用带有压缩和解压缩文件夹的 Sockets?
  • @Luciekulza 这本身就是一个巨大的独立问题 - 需要更多地了解您的要求......
  • 哦!对不起,非常感谢。我让你知道这是否有效!