网上说先压缩 然后在下载 可是他代码他多了 我有点不理解 我找到一个简单的代码           String the_rar;
        RegistryKey the_Reg;
        Object the_Obj;
        String the_Info;
        ProcessStartInfo the_StartInfo;
        Process the_Process;
        try
        {
            string dir = @"E:\nnewexam\upload";
            the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
            the_Obj = the_Reg.GetValue("");
            the_rar = the_Obj.ToString();
            the_Reg.Close();
            the_rar = the_rar.Substring(1, the_rar.Length - 7);
            the_Info = " a " + " 052.rar " + " " +@"E:\nnewexam\upload\052";
            the_StartInfo = new ProcessStartInfo();
            the_StartInfo.FileName = the_rar;
            the_StartInfo.Arguments = the_Info;
            the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            the_StartInfo.WorkingDirectory = dir;//获取或设置要启动的进程的初始目录。
            the_Process = new Process();
            the_Process.StartInfo = the_StartInfo;
            the_Process.Start();
            Response.Write("压缩成功");
        }
        catch (Exception ex)
       {
            Response.Write(ex.ToString());
        }
    }
这个能压缩成功.但是不是我想要的结果.他压缩的内容包含了 虚拟目录的名 我想压缩的只包含upload 下的一个文件夹052的内容

解决方案 »

  1.   


    string dir = @"E:\nnewexam\upload";
    改成
    string dir = @"E:\nnewexam\upload\052";
    试一试
      

  2.   

    考虑 WinRAR 的压缩目标文件路径使用相对工作目录的 相对路径the_Info = " a " + " 052.rar " + " " +@"E:\nnewexam\upload\052";》》》the_Info = " a " + " 052.rar " + " " +@"052";  // 相对 the_StartInfo.WorkingDirectory = dir; 中设置的路径
      

  3.   

    谢谢 :Jinglecat(晓风残月 
    很感激 对了 我现在还不太清楚:the_Info = " a " + " 052.rar " + " " +@"E:\nnewexam\upload\052"; 这句话 尤其是哪个"a" 为什么是A 还有就是the_StartInfo.WorkingDirectory = dir; 这话加不加都可以啊