热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#调用winrar压缩目录,如何指定目录结构?

System.Diagnostics.ProcessProcess1newSystem.Diagnostics.Process();Pro
            System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
            Process1.StartInfo.FileName = "Winrar.exe";
            Process1.StartInfo.CreateNoWindow = true;
          
            string zippath="d:\\1\\2\\3\\4"
            string filepath="d:\\1\\2\\3\\4.rar"
            Process1.StartInfo.Arguments = " m " + zippath + " " + filepath;
           
            这样压缩出来的4.rar中带着1\\2\\3\\4这样的结构,我需要4.rar中目录的结构是从2开始,也就是3\\4,这个问题怎么处理,求教。

2 个解决方案

#1


命令行参数使用问题啊;

用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>
               <@列表文件...> <解压路径"> 

<命令>
a             添加文件到压缩文件
c             添加压缩文件注释
cf            添加文件注释
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[格式]      使用当前日期生成压缩文件名
ao            添加具有压缩属性的文件
ap<格式>      添加路径到压缩文件中
as            同步压缩文件内容
av            添加用户身份校验(仅注册版本可用)
av-           禁用用户身份校验
c-            禁用注释显示
cfg-          禁用读取配置
cl            名称转换为小写
cu            名称转换为大写
df            压缩后删除文件
dh            打开共享文件
ds            对固实压缩文件禁用名称排序
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]   指定存储的文件类型
n<文件>       仅包含指定的文件
n@            从标准输入设备读取文件名到包括
n@<列表>      在指定的文件列表包括文件
o+            覆盖已存在文件
o-            不覆盖已存在文件
oc            设置 NTFS 压缩属性
os            保存 NTFS 流
ow            保存或恢复文件所有者和组
p[密码]       设置密码
p-            不询问密码
r             递归子目录
r0            仅递归通配符名称的子目录
ri

[:]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
rr[N]         添加数据恢复记录
rv[N]         创建恢复卷
s[,v[-],e] 创建固实压缩文件
s-            禁用固实压缩文件
sfx[名称]     创建自解压压缩文件
st[名称]      从标准输入设备读取数据(stdin)
t             压缩后测试文件
ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
tk            保留原始压缩文件时间
tl            设置压缩文件时间为最新文件时间
tn<时间>      添加 <时间> 以后的文件
to<时间>      添加 <时间> 以前的文件
ts[N] 保存或恢复文件时间(修改,创建,访问)
u             更新文件
v             自动检测创建卷的大小或者列出所有的卷
v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1]
vd            创建容量前清除磁盘内容
ver[n]        文件版本控制
vn            使用旧风格的卷命名方案
vp            每卷之前暂停
w<路径>       指定工作目录
x<文件>       排除指定的文件
x@            从标准输入设备读取要排除的文件名
x@<列表>      排除指定列表文件中的文件
y             假设对全部询问都回答是
z<文件>       从文件读取压缩文件注释 


举个例子: 

1. 建立一个批处理文件,里头起作用的只有1行:) 

======================================= 

BackFav.bat(名字可以随便起)文件内容: 

REM 这个批处理文件是用来自动备份我的收藏夹
REM WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径">
"D:"Program Files"WinRAR"WinRAR.exe" a -as -r -sfx -zsfxpara.txt -EP1 "d:"my documents"Favorites.exe" "%USERPROFILE%"Favorites" 

========================================= 

参数说明: 

a:                   添加指定的文件(源目录,这里是"%USERPROFILE%"Favorites")和文件夹到压缩文件(目标文件,这里是"d:"my documents"Favorites.exe")中。 

-as:                这是一个开关,指添加方式是“同步压缩文件内容” 

-r:                  表示“包含子文件夹” 

-sfx:               表示建立的是一个自解压文件 

-zsfxpara.txt: 从文件sfxpara.txt读取压缩文件注释,这注释有什么用后面解释 

-ep1:             表示不把路径%USERPROFILE%保存在压缩文件中 


2. 注释文件的作用 

建立压缩文件的时候不光要考虑压缩那些文件,还要考虑怎么解压缩。通过注释文件可以向压缩包传递许多有用的信息。 

sfxpara.txt内容: 

PATH=%USERPROFILE%"
Silent=1 

#2


压缩文件夹
winrar.exe a -ag -k -r -s -ibck c:\bak.rar c:\dat\ 
压缩多个文件
winrar a -ag -ibck bak.rar filename1 filename2

参数说明
winrar.exe:运行winrar,
如果winrar.exe没在默认路径中则需要指明路径,如c:\Progra~1\winrar\winrar.exe ...;
a :备份所有文件;
-ag :当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,文件名bakYYYYMMDDHHMMSS.rar;
-k :锁定压缩文件;
-r:备份目录和子目录;
-s :创建固实压缩文件;
-ibck :后台运行;
c:\bak.rar :备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间),
也可不用-ag参数,通过“%date:~0,4%%date:~5,2%%date:~8,2%”取得时间字串,
也可写作c:\bak.zip;
c:\dat\ :要备份的文件目录。

filename1:要压缩的文件名,可以多个,也可用通配符file*
 


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了lintcode(12)题目的要求和解题思路,以及给出了相应的代码实现。题目要求在给定的字符串source中找到包括所有目标字符串字母的最短子串,并且时间复杂度为O(n)。解题思路是使用滑动窗口的方法,通过维护一个unordered_map来记录目标字符串中每个字符的出现次数,并使用双指针来寻找最小子串。代码实现部分给出了具体的实现代码。 ... [详细]
author-avatar
兔子是不常吃萝卜的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有