lisliefor
发贴: 287
积分: 7
|
于 2006-09-05 10:06
以前也碰到过这个问题:在上传rar,同时需要解压缩。 当时,在网上找了一个关于zip压缩,流控制将zip还原为文件。但压缩包中有稍微大一点的图片,在解压后,图片无法预览,估计是解压算法的问题。后来我尝试使用java.lang.RunTime对象建立进程,使用WINRAR自带的解压可执行文件(安装过WINRAR的,便可以在安装目录找到UnRAR.exe的文件)。 使用控制台命令:..\UnRAR.exe_path x rar_path aim_path UnRAR.exe_path 为可执行文件路径 x 以绝对路径解压 rar_path 压缩文件路径 aim_path 目标文件路径
如果上面列出的路径中,文件夹存在空格,便出现LZ提的问题了。 而我用的服务器是Tomcat嘛~在安装的时候,默认的路径便是“c:\Program Files\Apache Software Foundation\Tomcat 5.5” 如果不重新配置服务器,无可避免的出现问题。 使用转义字符,开始也不是没想过,不过浅尝辄止。呵呵,why的方法是可行的,LZ的也是,不过我不大明白:
Runtime.getRuntime().exec("cmd /c start \"\" \"d:\\Folder with spaces\\Filename with spaces.xls\""); start后面多出的\"\",起什么作用呢?
感谢LZ!感谢WHY! 当时为此还研究过WINRAR控制台手册,尝试过以相对路径解压、使用exec(String command)的重载方法exec(String[] cmdarray, String[] envp, File dir) 、尝试过执行进程工作环境,配合以相对路径解压(会破坏压缩文件原本的文件结构)、尝试过制作自解压文件....... 多多少少都有缺陷!
我当时还是让那边把服务器从新配置了一下,有空格的地方都用下划线代替, 惭愧.......
再次表示感谢,不过似乎有点晚~ (暑假不开网,要去机房找东西,也是一个客观原因吧!)
|