最好成压缩成RAR的,实在不行别的格式也可以了,我现在有的代码只是对文件进行操作的,请高手帮忙

解决方案 »

  1.   

    找一个安装过rar的文件夹,从里面Copy一个叫 rar.exe的文件到你的程序文件夹里,然后就可以用Process.Start 来调用WinRAR的全部压缩解压缩功能了,语法如下:
    用法:     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<P>[:<S>]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[<N>,v[-],e] 创建固实压缩文件
      s-            禁用固实压缩文件
      sfx[名称]     创建自解压压缩文件
      st[名称]      从标准输入设备读取数据(stdin)
      t             压缩后测试文件
      ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
      tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
      tk            保留原始压缩文件时间
      tl            设置压缩文件时间为最新文件时间
      tn<时间>      添加 <时间> 以后的文件
      to<时间>      添加 <时间> 以前的文件
      ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
      u             更新文件
      v             自动检测创建卷的大小或者列出所有的卷
      v<大小>[k,b]  创建卷大小=<大小>*1000 [*1024, *1]
      vd            创建卷前清除磁盘内容
      ver[n]        文件版本控制
      vn            使用旧风格的卷命名方案
      vp            每卷之前暂停
      w<路径>       指定工作目录
      x<文件>       排除指定的文件
      x@            从标准输入设备读取要排除的文件名
      x@<列表>      排除指定列表文件中的文件
      y             假设对全部询问都回答是
      z<文件>       从文件读取压缩文件注释
      

  2.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95   你好,谢谢你的回答,你能不能帮我写一点代码啊?我刚接触这方面。
      

  3.   

    ICSharpCode.SharpZipLib.Zip.FastZip zip = new ICSharpCode.SharpZipLib.Zip.FastZip();
                    zip.CreateEmptyDirectories = true;
                    zip.CreateZip(@"c:\" + idx.ToString() + @".zip", @"C:\temp", true, null);
      

  4.   

    下载 SharpZipLib或
            public static bool DownloadFile(string remoteurl, System.IO.Stream Stream)
            {
                System.Net.WebRequest req;
                try
                {
                    req = System.Net.WebRequest.Create(remoteurl);
                    req.Method = "GET";
                    System.Net.WebResponse rsp = req.GetResponse();                              return CopyData(rsp.GetResponseStream(), Stream);
                }
                catch (Exception myError)
                {
                    writeLog(myError.Message);
                    return false;
                }
            }
            public static string FieldAsString(System.Data.DataRow row,string FieldName,string Format)
            {
                if (row.IsNull(FieldName))
                {
                    return "";
                }            object item = row[FieldName];
                if (item.GetType() == System.Type.GetType("System.DateTime")) 
                {
                    DateTime d;
                    d = (DateTime)item;
                    return d.ToString(Format);
                }
                return item.ToString();
            }        public static void CreateProcess(string fn, string Arguments, MsgCallback Callback)
            {
                ProcessStartInfo pi = new ProcessStartInfo();
                pi.FileName = fn;
                pi.Arguments = Arguments;
                pi.UseShellExecute = false;
                pi.CreateNoWindow = true;
                pi.WindowStyle = ProcessWindowStyle.Hidden;
                pi.RedirectStandardOutput = true;
                pi.RedirectStandardError = true;
             
                System.Diagnostics.Process p = new Process();
                
              
                p.StartInfo = pi;
                p.Start();           while (!p.HasExited)
               {               
                   System.Windows.Forms.Application.DoEvents();               if (Callback != null)
                   {
                       string s;
                       while ((s = p.StandardOutput.ReadLine()) != null)
                       {
                           Callback(s);
                       }
                   }
                   p.WaitForExit(100);
               }
             CreateProcess(dllPath + @"hhc.exe", @" """ + tmpPath + @"\hhp.hhp""", new ComponentFun.MsgCallback(OutputHandler));
     
      

  5.   

    用SharpZipLib来压缩和解压文件 
    http://www.cnblogs.com/singlepine/archive/2006/01/06/312475.html
      

  6.   

    hertcloud(·£孙子兵法£·) ( ) 信誉:100    Blog 谢谢你的回复,小山那个只针对文件压缩的,我现要的是对文件夹压缩(文件夹包抱文件和文件夹的)
      

  7.   

    ICSharp的好冬冬真多阿,还有个ICTextBox,这个可以做彩色文本编辑。但是不怎么会用。另外windows的文件夹是不能压缩的,rar等等也是记录了每个文件所在的文件夹,然后解压得时候创建文件夹。