2009-12-02 64 views
0

我有一个看起来像这样的客户机服务器上可能预先存在的目录结构:将文件解压缩到Visual Studio 2005 C++中的现有目录?

-| 
+css 
    |-ABC 
    |-EFG 
    |-XYZ 
+img 
    |-ABC 
    |-EFG 
    |-XYZ 
+js 
    |-ABC 
    |-EFG 
    |-XYZ 
+htm 
    |-ABC 
    |-EFG 
    |-XYZ 

当我们向客户发送更新自己的电子商务网站,我们在一个zip文件,里面有给他们以下结构:

-| 
+css 
    |-UniqueDirectory 
+img 
    |-UniqueDirectory 
+js 
    |-UniqueDirectory 
+htm 
    |-UniqueDirectory 

...其中UniqueDirectory始终是相同的名称。

这就是说,有没有一种使用Visual C++ 2005的方法,可以编写一个程序来解压zip文件,我们将客户发送到现有目录而不覆盖任何现有目录(当然不包括UniqueDirectory,可以并且应该被覆盖)。

的文件后,最终的结果在客户机上被解压缩应该是:

-| 
+css 
    |-ABC 
    |-EFG 
    |-UniqueDirectory 
    |-XYZ 
+img 
    |-ABC 
    |-EFG 
    |-UniqueDirectory 
    |-XYZ 
+js 
    |-ABC 
    |-EFG 
    |-UniqueDirectory 
    |-XYZ 
+htm 
    |-ABC 
    |-EFG 
    |-UniqueDirectory 
    |-XYZ 

可以这样用C来完成++?我的客户不具备将文件解压缩到正确目录所涉及的技术技能。他们也不一定要安装一个解压缩程序。

它需要一个外部库吗?最好我只想使用Visual C++ 2005的库,但是如果需要外部库,我想知道它是什么。

+0

...这一定是一个艰难的......( – leeand00 2009-12-02 16:26:59

+0

就像旁边,这里是我们必须欠的zip文件的功劳的故事: http:// www。 bbsdocumentary.com/library/CONTROVERSY/LAWSUITS/SEA/katzbio。txt 感谢编码horror – leeand00 2009-12-02 19:36:38

回答

0

不,MFC/ATL没有这样的能力。除非您计算随Visual Studio一起安装并可通过C++/CLI使用的J#redistributable,否则您需要一个外部库或重新发明轮子。

2

除非您想仅使用VS2005提供的内容来实现压缩/解压缩算法,否则您会希望使用库来为您完成工作。我建议zlib。免费。

有一个how-to on the site

编辑:回应你的评论中的问题,是的,它已经足够大,可以由VS2005构建。我刚刚下载了最新的源代码,并能够将其编译为.dll。我下载的副本是“zlib源代码,版本1.2.3,zipfile格式”。解压缩文件后,查找/ projects/visualc6 /目录。你应该可以从那里建立图书馆。

或者,您也可以从zlib网站下载预编译的库。它的源文件下载列表为“zlib编译的DLL,版本1.2.3,zipfile格式”

编辑:请记住,zlib是一个C库。如果你正在寻找一个C++库,你可以试试gzstream,它基本上是一个围绕zlib的C++包装。

+0

它是否足够大,它将与VS2005一起工作?如果是的话,我应该使用什么版本? – leeand00 2009-12-02 19:29:39

+0

是的,zlib将与VC2005一起工作。事实上,你可以用VC2005构建它,所以你可以静态地将它链接到你的项目中。使用版本1.2.3或更高版本。 (我昨天跑了这个版本) – Cheeso 2009-12-19 00:21:25

相关问题