Re: [請益] C++以程式碼自動製做壓縮檔
※ 引述《rockdown (寂滅冷鋒)》之銘言:
: 如題,我是用C++語法在撰寫程式
: 最近需要利用程式碼將指定的資料夾包成壓縮檔
: 請問有這樣的函式可供呼叫嗎
system()是一個函式,他被包在stdlib.h裡,
你可以用他去執行作業系統上的指令,
不過在呼叫system之前你要先把要你執行的指令用字串存起來,
例如:
string cmd = "mkdir new_folder";
system(cmd.c_str());
這兩行會在執行檔所在目錄底下創一個叫new_folder的空白資料夾
然後壓縮程式的話,我只用過7zip
因為winRAR是要錢的,雖然有測試版跟謎版..............嗯
在寫程式之前:
1. 去下載 7-Zip Command Line Version:http://www.7-zip.org/download.html
2. 解壓縮到某個地方,例如C:\7zCMD\
然後,
#include<cstdlib>
#include<string>
using namespace std;
int main(int argc, char* argv) {
string zipCmd = "C:\\7zCMD\\7za.exe a -t7z";
/*!^
7za.exe 是7zip的命令列程式(Cmd Line Tool)
a 跟 -t7z 是 7za.exe 的Cmd Line Argument,
a 是跟7za.exe說你現在要建立一個壓縮檔
-t7z是跟7za.exe說你現在要建立壓縮檔類型為7z
*/
string spacing = " ";
/*!
假設現在要壓縮一個叫Test的資料夾在D:\\
*/
string target = "D:\\Test";
/*!
壓縮好後放到叫Test.7z的壓縮檔也在在D:\\
*/
string resultZip = "D:\\Test.7z";
//將命令串起來
zipCmd += spacing;
zipCmd += resultZip;
zipCmd += spacing;
zipCmd += target;
/*!
補,完整密命令大概長這樣:
C:\\7zCMD\\7za.exe a -t7z D:\\Test.7z D:\\Test
*/
system(zipCmd.c_str());
return 0;
}
大概是這樣~ 你試試吧
我沒有compile.............
應該沒錯,很久沒寫了..........
system()詳細說明在這:
http://www.cplusplus.com/reference/clibrary/cstdlib/system/
--
It's not who I am underneath but what I do that defines me.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.105.207
→
05/02 21:37, , 1F
05/02 21:37, 1F
推
05/02 21:49, , 2F
05/02 21:49, 2F
→
05/02 21:50, , 3F
05/02 21:50, 3F
推
05/02 23:01, , 4F
05/02 23:01, 4F
→
05/04 01:32, , 5F
05/04 01:32, 5F
→
05/04 02:29, , 6F
05/04 02:29, 6F
→
05/04 02:30, , 7F
05/04 02:30, 7F
→
05/04 02:47, , 8F
05/04 02:47, 8F
→
05/04 02:48, , 9F
05/04 02:48, 9F
推
05/04 23:14, , 10F
05/04 23:14, 10F
→
05/04 23:24, , 11F
05/04 23:24, 11F
→
05/04 23:25, , 12F
05/04 23:25, 12F
忘了加 std 這個 namespace ........ Orz
※ 編輯: angel212310 來自: 140.118.105.207 (05/04 23:28)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):