在msdn上找了一段代码用System.IO.Compression的压缩解压类,可以实现单个文件的压缩,但是压缩后用winRAR解压后发现文件的扩展名没了?还有就是能不能对同一个文件夹下的多个文件打包成一个压缩包?或者能对不同文件夹下的几个文件压成一个包?好晕啊。期待高手解决

解决方案 »

  1. string[] zip_tmp = this.name1.Value.Split(new char[]{'*'});
    string zip_tmp1= zip_tmp[zip_tmp.Length-1];
    if(this.CheckName(zip_tmp1))     //检测文件命名的合法性
    {
    string zip_tmp2=zip_tmp1.Replace(".zip",""); //移除“.zip”后缀,并防止名称重复 this.NameExisted(1,ServerDir+@"personal\"+zip_tmp2+".zip",out zip_tmp2);
    StreamWriter zip_sr =File.CreateText(ServerDir+"list.dat");
    zip_sr.Write("");
    zip_sr.Close();
    for(int m =0;m<zip_tmp.Length-1;m++)
    {
    //以系统默认的 ANSI 编码创建压缩文件列表 StreamWriter zip_sw2 =new StreamWriter(ServerDir+"list.dat",true,System.Text.Encoding.Default);   
    zip_sw2.WriteLine(ServerDir+zip_tmp[m]);
    zip_sw2.Close();
    }
    System.Diagnostics.Process Process1=new System.Diagnostics.Process();
    Process1.StartInfo.FileName=ServerDir+"Winrar.exe";
    Process1.StartInfo.Arguments=" a  -ep1 -inul -y "+zip_tmp2+@" @"+ServerDir+"list.dat";
    Process1.Start();    //进行压缩
    while(!Process1.HasExited)          //等待压缩的完成
    {
    }
    }
      

  2. 调用winrar压缩,创建压缩列表list.dat
      

  3. 请大家帮忙看看下面这个问题
    http://community.csdn.net/Expert/topic/4705/4705982.xml?temp=.6337702
      

类似问题 »