通过JavaMail从Exchange server读取Zip文件后提取Zip文件的内容

通过JavaMail从Exchange server读取Zip文件后提取Zip文件的内容,java,zip,jakarta-mail,unzip,Java,Zip,Jakarta Mail,Unzip,下面是读取ZIP文件内容的程序 但我的问题是这行代码:ZipFile zf=new-ZipFile(“C:/ReadZip.zip”) 在上面的ZipFile构造函数中,它传递ZIP文件的路径 在我的情况下,我没有把ZIP文件存储在任何地方。在我的例子中,我首先通过JavaMail API从exchange电子邮件帐户读取该ZIP文件,然后需要读取该ZIP文件的内容 通过JavaMail,我可以连接到exchange,阅读电子邮件并提取附件,然后查看附件是否是zip文件-所有工作都正常-现在我

下面是读取ZIP文件内容的程序

但我的问题是这行代码:ZipFile zf=new-ZipFile(“C:/ReadZip.zip”)

在上面的ZipFile构造函数中,它传递ZIP文件的路径

在我的情况下,我没有把ZIP文件存储在任何地方。在我的例子中,我首先通过JavaMail API从exchange电子邮件帐户读取该ZIP文件,然后需要读取该ZIP文件的内容

通过JavaMail,我可以连接到exchange,阅读电子邮件并提取附件,然后查看附件是否是zip文件-所有工作都正常-现在我有了zip文件-我如何动态传递给ZipFile构造函数ZipFile zf=new ZipFile(“C:/ReadZip.zip”)

非常感谢你在这方面的帮助。我需要在周末完成这件事


多谢各位

在哪里提取zip文件

如果它与您的项目位于同一目录中,您可以简单地使用相对路径

示例:ZipFile a=新ZipeFile(“ZipeFile.zip”)

如果在项目目录中创建了单独的文件夹

     ZipeFile a = new ZipFile("filename/zipfile.zip");

如果从JavaMail API获得的zip文件的内容是通过输入流获得的,则可以使用读取zip文件的内容。ZipInputStream的一个例子是

我不能使用这个-新的ZipeFile(“ZipeFile.zip”);因为我没有在硬盘中存储zip文件。我通过JavaMail从exchange server读取zip文件,现在我需要在上面的构造函数中传递该zip文件。当您说“我从exchange server读取zip文件”时,您在读取zip文件时会如何处理它?如果使用MimeBodyPart.saveFile方法将其保存到临时文件,则可以如上所述传递该文件名。否则,请尝试使用ZipInputStream包装来自MimeBodyPart.getInputStream的InputStream。有关所有这些方法和类的详细信息,请参见javadocs。