我需要在我的c#应用程序中使用winrar压缩一个或多个文件

时间:2014-01-30 08:04:42

标签: c#-4.0 compression directory winrar

大家都在编码。我需要找到我的应用程序的解决方案。实际上我做了但有一点要去。这是将文件压缩成我提到的rar格式文件的代码。

  private const string RarPath = @"C:\Program Files\WinRAR\WinRAR.exe";
    List<string> files = new List<string>();




    public void RarFilesAdd(string rarPackagePath, List<string> files)
    {
        for (int i = 0; i < files.Count; i++) files[i] = string.Format("\"{0}\"", files[i]);
            string dosyaListe = string.Join(" ", files.ToArray());
            string arguman = string.Format("A {0} {1}", String.Format("\"{0}\"", rarPackagePath), dosyaListe);
            Process.Start(String.Format("\"{0}\"", RarPath), arguman);

    }
     static void Main(string[] args)
    {
        // files.AddRange(System.IO.Directory.GetFiles(@""));
        //RarFilesAdd(@"C:\my\test.rar", files);


        Program nesne = new Program();
        //
        nesne.files.Add(@"C:\Users\Hüseyin\Desktop\AA\a.txt");
        nesne.files.Add(@"C:\Users\Hüseyin\Desktop\AA\a1.txt");
        nesne.RarFilesAdd(@"C:\Users\Hüseyin\Desktop\deneme.rar",nesne.files);
       // nesne.files.AddRange(System.IO.Directory.GetFiles(@"C:\Users\Hüseyin\Desktop\deneme.rar"));

    }

此代码使用完整路径创建rar文件,如deneme.rar中的C:\ Users \Hüseyin\ Desktop \ AA \ a1.txt。但我希望它创建为rar文件,其中没有任何文件夹。我想我没有明确解释。现在我点击deneme.rar它打开目录为Users \Hüseyin\ AA。但我想要位于AA的文件,直接保存在deneme.rar中,没有任何目录或文件。我想显示我想要的屏幕,但我没有做任何代表。

有没有人会帮助我,这将是非常棒的... 大家好日子

1 个答案:

答案 0 :(得分:1)

您需要的命令行是:

"C:\Program Files\WinRAR\WinRAR.exe" a -ep "C:\Users\Hüseyin\Desktop\deneme.rar" "C:\Users\Hüseyin\Desktop\AA\a.txt" "C:\Users\Hüseyin\Desktop\AA\a1.txt"

在您的C#代码中,我错过了添加文件到存档的命令a,但是您的代码仍然正常运行,因为此命令默认运行 WinRAR 而没有命令指定。

重要的是使用switch -ep从文件名中删除路径,因此只在文件名中存储在RAR存档中。

有关可用命令和开关的详细信息,请参阅 WinRAR 的程序文件文件夹中的文本文件 Rar.txt

其他命令行也可以工作:

"C:\Program Files\WinRAR\WinRAR.exe" a -ep "C:\Users\Hüseyin\Desktop\deneme.rar" "C:\Users\Hüseyin\Desktop\AA\"

将目录C:\Users\Hüseyin\Desktop\AA\中的所有文件添加到存档。

"C:\Program Files\WinRAR\WinRAR.exe" a -ep "C:\Users\Hüseyin\Desktop\deneme.rar" "C:\Users\Hüseyin\Desktop\AA\*.txt"

仅将目录为C:\Users\Hüseyin\Desktop\AA\的文件扩展名为TXT的所有文件添加到存档。