如何用java代码调用解压工具去解压.exe文件

如何用java代码调用解压工具去解压.exe文件,第1张

再 windows下通过 cmd命令执行解压缩没问题,但是通过 java代码去执行不能解压是为什么?我在开始运行中输入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解压成功,但是通过下面 java代码不能实链亩现解压缩功能,请指点。主要代码: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\")

再 windows下通过 cmd命令执行解棚祥森压缩没问题,但是通过 java代码去执行不能解压是为什么?我在开始运行中输入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解压成功,宴态但是通过下面 java代码不能实现解压缩功能,请指点。主要代码: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\")

//解压缩ZIP 参数 zip文件(绝对路径) 返回解压后的文件列表(绝对路径)

public static List untieZipFile(String zipFile) throws FileNotFoundException, IOException{

List fileList = new ArrayList()

// ZIP文件输入流

ZipInputStream zinStream

try {

zinStream = new ZipInputStream(new FileInputStream(zipFile))

ZipEntry ze

// pathTemp 去掉.zip后缀 生成对带粗乎应的释放文件夹

String pathTemp = zipFile.replaceAll("\\\\", "/").replaceAll("//","/").substring(0, zipFile.length() - 5)

// 如果有同名目录,删除原有目录下的文件

java.io.File oldFile = new File(pathTemp)

if (oldFile.exists()) {

deleteFileList(oldFile)

}

// 解压ZIP中全部文件

while ((ze = zinStream.getNextEntry()) != null) {

if(ze.getName().indexOf(".") != -1){

// fileTemp 获蠢悉得ZIP中文件列表的路径

String[] fileTemp = ze.getName().replaceAll("\\\\", "/").replaceAll("//", "/凳颤").split("/")

// writeFile ZIP中单个文件的绝对路径

String writeFile = pathTemp

for (int i = 0i <fileTemp.length-1i++) {

writeFile = writeFile + "/" + fileTemp[i]

}

java.io.File newFile = new File(writeFile)

if (!newFile.exists()) {

newFile.mkdirs()

}

// 构造出与ZIP中路径相同的输出流

OutputStream zoutStream = new FileOutputStream(writeFile + "/" + fileTemp[fileTemp.length - 1])

// 写入文件内容

int bytesRead = 0

byte[] buffer = new byte[8192]

while ((bytesRead = zinStream.read(buffer, 0, 8192)) != -1) {

zoutStream.write(buffer, 0, bytesRead)

}

zoutStream.flush()

zoutStream.close()

fileList.add(writeFile + "/" + fileTemp[fileTemp.length - 1])

}

}

zinStream.close()

} catch (FileNotFoundException e) {

throw new FileNotFoundException(FileUtils.class.getName()+ "#untieZipFile()#" + e.getMessage())

} catch (IOException e) {

throw new IOException(FileUtils.class.getName()+ "#untieZipFile()#" + e.getMessage())

}

return fileList

}

//删除目录

public static void deleteFileList(File oldFile) {

if (oldFile != null || oldFile.exists() || oldFile.isDirectory()) {

File[] oldFileList = oldFile.listFiles()

if(oldFileList!=null){

for (int i = 0i <oldFileList.lengthi++) {

if (oldFileList[i].isFile()) {

oldFileList[i].delete()

} else if (oldFileList[i].isDirectory()) {

deleteFileList(oldFileList[i])

}

}

}

oldFile.delete()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12426280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存