日期:2014-05-18  浏览次数:20492 次

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

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