RAR文件夹没有持久的完整路径

时间:2012-03-13 13:16:57

标签: rar unrar

1)我有一个名为CCBuilds的文件夹,其中包含此路径中的几个文件 - > E:\测试\构建\ CCBuilds。

2)我已将C#代码(Process.Start)写入Rar此文件夹并使用以下命令将其保存在E:\ Testing \ Builds \ CCBuilds.rar中

  

“C:\ program files \ winrar \ rar.exe a E:\ Testing \ Builds \ CCBuilds.rar E:\ Testing \ Builds \ CCBuilds”

3)问题在于,虽然rar文件是正确创建的,但当我将文件解压缩到CCBuilds2文件夹时(通过代码使用“rar.exe x”命令或使用上下文菜单中的Extract),unrared文件夹包含完整路径:  即:提取E:\ Testing \ Builds \ CCBuilds.rar - >        E:\测试\构建\ CCBuilds2 \测试\构建\ CCBuilds \<>

我希望它是这样的:  E:\测试\构建\ CCBuilds2 \ CCBuilds \<>

如何在添加rar / extract回来时避免这种完整路径持久性。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:18)

使用-ep1开关。

更多信息:

  

-ep =文件被添加到存档而不包括路径信息。可能导致存档中存在多个文件   同名。

     

-ep1 =不要在归档中存储在命令行输入的路径。从名称中排除基本文件夹。

     

-ep2 =将路径扩展为完整。存档时存储完整的文件路径(驱动器号和前导反斜杠除外)。

(来源:http://www.qa.downappz.com/questions/winrar-command-line-to-add-files-with-relative-path-only.html

答案 1 :(得分:1)

以防这有助于:我目前正在开发一个MS Access数据库项目(一家小公司的客户关系管理),其中一项任务就是将docx文件压缩发送给客户,具有一定的使用密码加密。

在触发docx文件的zip包装的VBA过程中,我按如下方式调用WinRAR:

c:\Programme\WinRAR\winrar.exe a -afzip -ep -pThisIsThePassword "OutputFullName" "InputFullName" 

-afzip说:“创建一个zip文件(而不是rar文件)

-ep说:不要包含源文件的路径,即将文件直接放入zip文件夹

WinRAR帮助的“命令行”部分提供了此类开关的完整列表。

答案 2 :(得分:0)

x将其提取为E:\ Testing \ Builds \ CCBuilds2 \ Testing \ Builds \ CCBuilds \,因为在声明源时使用的是完整路径。使用-ep1或将默认工作目录设置为E:\ Testing \ Builds。

需要使用-ep1,但这有点棘手。
如果您使用:

  

Winrar.exe一个output.rar输入路径
  Winrar.exe E:\ Testing \ Builds \ CCBuilds.rar E:\ Testing \ Builds \ CCBuilds

它将包含声明的输入路径:

  

E:\ Testing \ Builds \ CCBuilds-> E:\ Testing \ Builds \ CCBuilds.rar:
  Testing \ Builds \ CCBuilds \ file1
  Testing \ Builds \ CCBuilds \ file2
  Testing \ Builds \ CCBuilds \ folder1 \ file3
  ...

最终会像您提到的那样解压:

  

E:\ Testing \ Builds \ CCBuilds2 \ Testing \ Builds \ CCBuilds \

使用-ep1有两种方法。

如果您想要简单的路径:

  

E:\ Testing \ Builds \ CCBuilds \

要提取为:

  

E:\ Testing \ Builds \ CCBuilds2 \ CCBuilds \ file1
  E:\ Testing \ Builds \ CCBuilds2 \ CCBuilds \ file2
  E:\ Testing \ Builds \ CCBuilds2 \ CCBuilds \ path1 \ file3
  ...

使用

  

Winrar.exe -ep1 E:\ Testing \ Builds \ CCBuilds.rar E:\ Testing \ Builds \ CCBuilds

存档中的文件如下所示:

  

CCBuilds \ file1
  CCBuilds \ file2
  CCBuilds \ folder1 \ file3
  ...

或者您可以使用ep1来添加文件和文件夹结构,并在递归的帮助下将基本文件夹除尽,并将基本路径定义为结构的内部路径:

  

Winrar.exe -ep1 -r E:\ Testing \ Builds \ CCBuilds.rar E:\ Testing \ Builds \ CCBuilds \ *

文件:

  

E:\ Testing \ Builds \ CCBuilds \ file1
  E:\ Testing \ Builds \ CCBuilds \ file2
  E:\ Testing \ Builds \ CCBuilds \ folder1 \ file3
  ...

档案库中的内容如下:

  

file1
  file2
  folder1 \ file3
  ...

提取时的外观如下:

  

E:\ Testing \ Builds \ CCBuilds2 \ file1
  E:\ Testing \ Builds \ CCBuilds2 \ file2
  E:\ Testing \ Builds \ CCBuilds2 \ folder1 \ file3
  ...

无论如何,这两种方法-ep1可用于排除有或没有包含文件的文件夹(基本文件夹/或基本路径)的基本路径。