递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 10645|回复: 7
打印 上一主题 下一主题

[其它] 如何可以打包文件夹成zip吗

[复制链接]

8

主题

37

帖子

174

积分

注册会员

Rank: 2

积分
174
跳转到指定楼层
楼主
发表于 2021-2-27 14:22:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
现在火山PC里有方法可以打包文件夹成zip吗,谢谢
回复

使用道具 举报

2

主题

15

帖子

107

积分

注册会员

Rank: 2

积分
107
8#
发表于 2021-12-2 22:33:59 | 只看该作者
没有,只能自己封装
回复

使用道具 举报

8

主题

37

帖子

174

积分

注册会员

Rank: 2

积分
174
7#
 楼主| 发表于 2021-3-30 19:00:29 | 只看该作者
/*
         HZIP newZipFile = CreateZip(full_filepath_,0);         
         ZIP_Folder(str_path, str_path, full_filepath_,newZipFile);
         CloseZip(newZipFile); //关闭zip文件
*/

ZIP_Folder(const wxString &in_epub_folder,
                                        const wxString &in_folder_old,
                                                const wxString &out_filename,
                                                                        HZIP newZipFile)
{
        if (!wxFileName::Exists(in_folder))
        {
                return ;
        }
        //建立一个空的压缩文件
        //HZIP newZipFile = CreateZip(out_filename,0);

        TCHAR* ch_folder;
        TCHAR* ch_filename;
        TCHAR* ch_fullpath;

        wxDir dir(in_folder);
        wxString filename;
        wxString file_and_folder_short_name;
        int iPos=0;
        bool cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_DEFAULT);
        int iStartPos = 0;
        while (cont)
        {
                wxString file = in_folder + wxFILE_SEP_PATH + filename;
                iPos = file.Find(in_folder_old);
                if(wxString::npos != iPos )
                {  
                        iStartPos = in_folder_old.length();
                        file_and_folder_short_name = file.substr(iStartPos);
                }
                const char* file_char = file;
                if (wxFileExists(file))
                {
                        if((_access(file, 2)) != -1)
                {
         

                                file_and_folder_short_name = file_and_folder_short_name.substr(1);
                                ch_filename = new TCHAR[file_and_folder_short_name.length()];  
                    lstrcpy(ch_filename, file_and_folder_short_name);

                                //File to Zip
                                ch_fullpath = new TCHAR[file.length()];   
                    lstrcpy(ch_fullpath, file);  
                ZipAdd(newZipFile, ch_filename, ch_fullpath); //将文件添加到zip文件中  
                        }
                }
                else
                {  
                        file_and_folder_short_name =file_and_folder_short_name.substr(1)+"/";
                        ch_folder = new TCHAR[file_and_folder_short_name.length()];  
                        lstrcpy(ch_folder, file_and_folder_short_name);
                        ZipAdd(newZipFile, ch_folder, NULL);   //建立一个文件夹
                        ZIP_Folder(file,in_folder_old,out_filename,newZipFile);
                }
                cont = dir.GetNext(&filename);
        }
        return ;
}




使用的方法:

/*
         HZIP newZipFile = CreateZip(full_filepath_,0);         
         ZIP_Folder(str_path, str_path, full_filepath_,newZipFile);
         CloseZip(newZipFile); //关闭zip文件
*/
回复

使用道具 举报

8

主题

37

帖子

174

积分

注册会员

Rank: 2

积分
174
6#
 楼主| 发表于 2021-3-30 17:38:53 | 只看该作者
火山PC有方法可以压缩文件夹吗,需要知道压缩进度或者压缩结果的
回复

使用道具 举报

8

主题

37

帖子

174

积分

注册会员

Rank: 2

积分
174
5#
 楼主| 发表于 2021-3-12 18:08:08 | 只看该作者
我也想知道
回复

使用道具 举报

47

主题

886

帖子

4153

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4153
地板
发表于 2021-3-10 14:03:28 | 只看该作者
不太清楚,我也想知道。
回复

使用道具 举报

8

主题

37

帖子

174

积分

注册会员

Rank: 2

积分
174
板凳
 楼主| 发表于 2021-3-10 09:45:47 | 只看该作者
可以用zlib压缩文件夹吗
回复

使用道具 举报

47

主题

886

帖子

4153

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4153
沙发
发表于 2021-2-27 14:55:25 | 只看该作者
执行  运行   调用DOS命令,操作winrar
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 07:41 , Processed in 0.088207 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表