CPP使用命令行解压7z文件
生活随笔
收集整理的這篇文章主要介紹了
CPP使用命令行解压7z文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在項目中如果遇到7z文件時,可以使用命令行的方式解壓處理。
首先,7z命令行的使用可以參考這篇文章:https://www.cnblogs.com/Frank99/p/5951177.html。
然后我們可以在代碼中使用ShellExecuteEx來調用7z命令行解壓文件,示例代碼如下:
SHELLEXECUTEINFO ShExecInfo;ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = _T("open");ShExecInfo.lpFile = _7z_exe_path; // 7z程序的路徑ShExecInfo.lpParameters = cmd_line_param; // 7z解壓的命令行參數ShExecInfo.lpDirectory = NULL;ShExecInfo.nShow = SW_HIDE; // 不顯示窗體ShExecInfo.hInstApp = NULL;ShellExecuteEx(&ShExecInfo); // 開始解壓WaitForSingleObject(ShExecInfo.hProcess, INFINITE); // 等待7z解壓返回DWORD dwCode = 0;GetExitCodeProcess(ShExecInfo.hProcess, &dwCode); // 獲取返回代碼if (dwCode != 0){// 解壓失敗}else{// 解壓成功}當然也可以使用Shellexecute/WinExec來調用7z程序解壓文件,但是由于這兩個函數調用后立即返回,所以不知道什么時候文件解壓完成,只能手動調用Sleep函數來猜測何時解壓完成,然而當文件大小變化時Sleep時間卻不能動態變化,不夠靈活,所以最好還是使用ShellExecuteEx。
上面就是我對CPP中使用命令行解壓7z文件的一點總結,如有錯誤之處,請于評論處指出,不勝感激。
總結
以上是生活随笔為你收集整理的CPP使用命令行解压7z文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html表单存储功能,纯前端实现保存表单
- 下一篇: 香八拉 北京 香山 八大处 防火通道