解決QProcess對象調用execute執行cmd命令不支持中文和空格的問題
下面說說在調用winrar時需要注意的情況
1.壓縮:
cmd命令如下:
QString sCmd = "WinRaR.exe a -ep1 -r -ibck -o+ C:/test.rar C:/test";
這是將C盤下的test文件夾壓縮,在C盤下生成test.rar
2.解壓縮:
QString sCmd = "WinRaR.exe x -ibck -y -o+ C:/test.rar C:/list";
這是將C盤下的test.rar壓縮包解壓到C盤下的list
如果你沒有特殊要求,上面這兩句中的參數就不用改了。具體含義見下文:
注意點:
a是壓縮
x是絕對路徑解壓縮,注意一定不要用e,會出錯的。
ibck是後臺壓縮。
其他的命令,見下表:
用法: rar <命令> -<開關 1> -<開關 N> <壓縮文件> <文件...>
<@列表文件...> <解壓路徑\>
<命令>
a 添加文件到壓縮文件
c 添加壓縮文件註釋
cf 添加文件註釋
ch 改變壓縮文件參數
cw 寫入壓縮文件註釋到文件
d 刪除壓縮文件中的文件
e 解壓壓縮文件到當前目錄
f 刷新壓縮文件中的文件
i[參數]=<串> 在壓縮文件中查找字符串
k 鎖定壓縮文件
l[t,b] 列出壓縮文件[技術信息,簡潔]
m[f] 移動到壓縮文件[僅對文件]
p 打印文件到標準輸出設備
r 修復壓縮文件
rc 重建丟失的卷
rn 重命名壓縮文件
rr[N] 添加數據恢復記錄
rv[N] 創建恢復卷
s[名字|-] 轉換壓縮文件爲自解壓格式或轉換回壓縮文件
t 測試壓縮文件
u 更新壓縮文件中的文件
v[t,b] 詳細列出壓縮文件[技術信息,簡潔]
x 用絕對路徑解壓文件
<開關>
- 停止掃描
ac 壓縮或解壓後清除存檔屬性
ad 添加壓縮文件名到目標路徑
ag[格式] 使用當前日期生成壓縮文件名
ai 忽略文件屬性
ao 添加具有壓縮屬性的文件
ap<格式> 添加路徑到壓縮文件中
as 同步壓縮文件內容
av 添加用戶身份校驗(僅註冊版本可用)
av- 禁用用戶身份校驗
c- 禁用註釋顯示
cfg- 禁用讀取配置
cl 名稱轉換爲小寫
cu 名稱轉換爲大寫
df 壓縮後刪除文件
dh 打開共享文件
dr 刪除文件到回收站
ds 對固實壓縮文件禁用名稱排序
dw 檔案處理後清除文件
e[+]<屬性> 設置文件排除和包括屬性
ed 不添加空目錄
en 不添加"壓縮文件結束"標誌
ep 從名稱中排除路徑(全部都是文件形式)
ep1 從名稱中排除基本目錄(如果壓縮是文件的話,只剩單個文件;如果壓縮的是文件夾的話,就是當前文件夾)
ep2 展開爲完整路徑(除盤符外的整個目錄路徑都被壓縮到壓縮文件中)
ep3 擴展路徑爲包含盤符的完全路徑(包括盤符在內的文件,都被壓縮到壓縮文件)
f 刷新文件
hp[密碼] 同時加密文件數據和文件頭
id[c,d,p,q] 禁用消息
ieml[屬性] 用 E-mail 發送壓縮文件
ierr 發送所有消息到標準錯誤設備
ilog[名稱] 把錯誤寫到日誌文件(只有註冊版本可用)
inul 禁用所有消息
ioff 完成一個操作後關閉 PC 電源
isnd 啓用聲音
k 鎖定壓縮文件
kb 保留損壞的已解壓文件
m<0..5> 設置壓縮級別(0-存儲...3-默認...5-最大)
mc<參數> 設置高級壓縮參數
md<大小> 以KB爲單位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
ms[ext;ext] 指定存儲的文件類型
mt<線程> 設置線程數
n<文件> 僅包含指定的文件
n@ 從標準輸入設備讀取文件名到包括
n@<列表> 包含在指定的列表文件中列出的文件
o[+|-] 設置覆蓋模式
oc 設置 NTFS 壓縮屬性
or 自動重命名文件
os 保存 NTFS 流
ow 保存或恢復文件所有者和組
p[密碼] 設置密碼
p- 不詢問密碼
r 遞歸子目錄(如果你寫*.txt,-r 會壓縮當前目錄下所有的txt,包括子目錄下的txt)
r- 禁用遞歸
r0 僅遞歸通配符名稱的子目錄
ri<P>[:<S>] 設置優先級(0-默認,1-最小..15-最大)和以毫秒爲單位的休眠時間
rr[N] 添加數據恢復記錄
rv[N] 創建恢復卷
s[<N>,v[-],e] 創建固實壓縮文件
s- 禁用固實壓縮文件
sc<chr>[obj] 指定字符集
sfx[名稱] 創建自解壓壓縮文件
st[名稱] 從標準輸入設備讀取數據(stdin)
sl<大小> 處理小於指定大小的文件
sm<大小> 處理超過指定大小的文件
t 壓縮後測試文件
ta<日期> 添加日期 <日期> 後修改的文件,日期格式 YYYYMMDDHHMMSS
tb<日期> 添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
tk 保留原始壓縮文件時間
tl 設置壓縮文件時間爲最新文件時間
tn<時間> 添加 <時間> 以後的文件
to<時間> 添加 <時間> 以前的文件
ts<m,c,a>[N] 保存或恢復文件時間(修改,創建,訪問)
u 更新文件
v 自動檢測創建卷的大小或者列出所有的卷
v<大小>[k,b] 創建卷大小=<大小>*1000 [*1024, *1]
vd 創建容量前清除磁盤內容
ver[n] 文件版本控制
vn 使用舊風格的卷命名方案
vp 每卷之前暫停
w<路徑> 指定工作目錄
x<文件> 排除指定的文件
x@ 從標準輸入設備讀取要排除的文件名
x@<列表> 排除在指定的列表文件中列出的文件
y 假設對全部詢問都回答是
z[文件] 從文件讀取壓縮文件註釋