Java 如何将本地计算机上存在的zip文件解压缩到服务器上的分区?
我在本地计算机上的C:\tem\test目录中有一个zip文件。我想在服务器上的新目录中提取它,该目录应该与zip文件同名。我怎么做Java 如何将本地计算机上存在的zip文件解压缩到服务器上的分区?,java,file,directory,zip,extract,Java,File,Directory,Zip,Extract,我在本地计算机上的C:\tem\test目录中有一个zip文件。我想在服务器上的新目录中提取它,该目录应该与zip文件同名。我怎么做 class UnZipFile { final static File source = new File("C:\\tmp\\test\\R1112B2_BcfiHtm.zip"); public static void getZipFiles() { try { String destination ="U:\\root\\intra
class UnZipFile {
final static File source = new File("C:\\tmp\\test\\R1112B2_BcfiHtm.zip");
public static void getZipFiles() {
try {
String destination ="U:\\root\\intranet\\res\\fi\\test";
byte[] buf = new byte[1024];
ZipInputStream zipinputstream = null;
ZipEntry zipentry;
zipinputstream = new ZipInputStream(
new FileInputStream(source));
zipentry = zipinputstream.getNextEntry();
while (zipentry != null) {
//for each entry to be extracted
String entryName = zipentry.getName();
System.out.println("entryname " + entryName);
int n;
FileOutputStream fileoutputstream;
File newFile = new File(entryName);
String directory = newFile.getParent();
if (directory == null) {
if (newFile.isDirectory())
break;
}
fileoutputstream = new FileOutputStream(
destination + entryName);
while ((n = zipinputstream.read(buf, 0, 1024)) > -1)
fileoutputstream.write(buf, 0, n);
fileoutputstream.close();
zipinputstream.closeEntry();
zipentry = zipinputstream.getNextEntry();
}//while
zipinputstream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我得到以下异常:
java.io.FileNotFoundException:C:\tmp\test\destatn\1000100\u FormDem\u NS\u NL.pdf(系统找不到指定的路径)您的代码显示您想提取zip文件,而您的错误是说它正在查找某个pdf文件,这是如何可能的?您是否验证了,源文件是否存在且可读?旁注:在
if(newFile.isDirectory())中中断
您真的想结束循环还是跳过该zip条目(在这种情况下,您需要继续;
而不是中断;
)?另外:您可以发布该行(或标记它,注意我们不会计算行数)您在上遇到异常?我的zip文件包含文件和目录。如果zip的内容包含目录,我想创建目录,如果不只是创建文件。