现在我想实现上传文件(有些是很多文件放在同一个文件中,要把这个文件夹上传到服务器,我想只有把它压缩了才行,但我用到的是没有压缩的文件,所以,我想实现自动解压缩,并把那个“解缩文件”删除。小弟是这样想的,不知各位有没有更好的办法,要是用我这个办法怎样实现),并自动解压缩,上传文件已实现,解压缩还没有实现,请各位高手帮个忙!先谢过了!

解决方案 »

  1.   

    http://blog.csdn.net/21aspnet/archive/2007/06/13/1649810.aspx
    http://blog.csdn.net/zhf7878/archive/2004/02/11/21942.aspx
      

  2.   

    在服务器上安装WINRAR(相信任何一台服务器都会有的),然后使用WINRAR的命令行方式解压缩文件,在你的程序中新开一个线程(线程知识请参考相关书籍和MSDN),该线程所做的工作就是调用WINRAR命令行文件来解压缩,至于WINRAR命令行使用方法在WINRAR的帮助文档已经有了,请参照WINRAR帮助文档。
      

  3.   

    //解压缩
            String the_rar;
            RegistryKey the_Reg;
            Object the_Obj;
            String the_Info;
            ProcessStartInfo the_StartInfo;
            Process the_Process;
            try
            ...{
                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 = " X " + " 1.rar " + " " + "C:\1";
                the_StartInfo = new ProcessStartInfo();
                the_StartInfo.FileName = the_rar;
                the_StartInfo.Arguments = the_Info;
                the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                the_Process = new Process();
                the_Process.StartInfo = the_StartInfo;
                the_Process.Start();
                Response.Write("解压缩成功");
            }
            catch (Exception ex)
            ...{
                Response.Write(ex.ToString());
            }
    请问一下这个方法的运有的思想是什么呀
      

  4.   

    建议楼主先别看别人的代码,先自己把过程给画下来,然后根据过程查找相应的程序代码资料,一块一块的做,相信一个晚上就可以搞定。我来讲个故事:
        首先,楼主已经知道的信息是:WinRAR这款软件的某个.exe文件可以做到不弹出界面来解压文件,这就是命令行程序。
        要让这个.exe文件运行起来该怎么办呢?通常的做法是在“我的电脑”里面双击这个程序,可是现在不行,要让服务器来自动运行,那该怎么办呢?查一查MSDN,.net这么强大的程序设计功能肯定会有启动某个程序的方法,于是楼主可以在MSDN上查到进程和线程的相关知识,也就是Process类,然后楼主在MSDN里面了解到Process类可以运行某个程序,运行起来的方法MSDN里面也提到了,然后楼主就开始写这个程序的第一个版本...
        楼主的第一个程序拿记事本做实验,用Process类成功的用自己的程序启动了记事本。然后楼主就照葫芦画瓢来启动winrar的命令行文件,可是问题又来了,那个命令行程序运行起来之后却不知道该解压哪个文件呀?怎么让它知道要解压哪个文件呢?
        于是楼主继续钻研MSDN,发现MSDN中提到“运行一个程序可以给该程序启动的时候传参数”,楼主灵光一闪,发现这个就好象快捷方式里面的参数是一样的,于是楼主继续钻研MSDN,MSDN告诉楼主,Process类启动程序是如何如何传参数的,如何使用ProcessStartInfo这个类向程序传参数,于是楼主就动手进行程序第二个版本的开发,加入参数功能,这一次他直接使用上winrar的命令行程序。到这里他又卡住了,该传什么参数呢?
        楼主觉得,既然要解压缩文件,那么被解压缩的文件名一定要作为参数传进去,可是好象还差点什么,于是楼主就去网上查资料,发现有人提到winrar的命令行运行方法,原来这些参数在winrar软件的帮助文档里面有啊,于是楼主又去查看winrar的帮助文档,当他打开满是鸟文的帮助文档的时候又被语言关给难住了。没问题,这一切都是小CASE,各种各样的翻译工具在楼主的手上已经散发出了美丽的光芒。
        最后,楼主终于通过他自己的力量解决了这一难题,并且体会初级到了编程的最大乐趣,也找到了学习编程的方法。
      

  5.   

    the_Info = " X " + " 1.rar " + " " + "C:\1";这句怎么用呀,是什么意思