Hy all,
我在这个文件中有一堆* .zip文件,有很多* .log文件和其他东西以及一个* .xml文件。
我需要找到该文件并将其复制到另一个目录。
到目前为止,我在* .zip文件夹中找到该文件 但现在我卡住了。 希望你们能帮助... 感谢
我到目前为止的代码:
public static void main(String[] args)
{
String sPath = "c:/results/";
//String sFiles;
File folder = new File(sPath);
File[] aListOfFiles = folder.listFiles();
try
{
//get all files in the folder
for (int i = 0; i < aListOfFiles.length; i++)
{
if (aListOfFiles[i].isFile())
{
//get path an file name
String sZipPath = aListOfFiles[i].getAbsolutePath();
//System.out.println("Absolute Path: " + sZipPath);
//open zip find the xml
ZipFile sourceZipFile = new ZipFile(sZipPath);
Enumeration e = sourceZipFile.entries();
while(e.hasMoreElements())
{
ZipEntry entry = (ZipEntry)e.nextElement();
String isXML = entry.getName();
if (isXML.endsWith(".xml"))
{
System.out.println(isXML);
//copieFile(File isXML,)
}
}
}
}
}
catch (IOException ioe)
{
System.out.println("Error while opening zip file " + ioe);
}
答案 0 :(得分:2)
如果不解压缩,则无法复制。必须完成此操作,文件需要存储在内存中或保存到磁盘中。
难怪你被困在那里。
要提取文件,请使用:
InputStream stream = sourceZipFile.getInputStream(entry);
然后,您可以通过自己编写整个复制逻辑或使用IOUtils.copy
将InputStream
复制到OutputStream
,例如FileOutputStream
。