解压zip文件与删除文件目录
/**
* 解压zip文件
* @param fis zip文件流
* @param unZipDirectory 解压后存放目录的路径
* @return 是否解压成功
* @see [类、类#方法、类#成员]
*/
public static boolean unZip(InputStream fis, String unZipDirectory)
{
ZipInputStream zis = null;
try
{
zis = new ZipInputStream(fis);
ZipEntry entry = null;
int len = 0;
while ((entry = zis.getNextEntry()) != null)
{
System.out.println("unZipDirectory=" + unZipDirectory + ", name=" + entry.getName());
if (!entry.getName().contains("."))
{
// fileTemp 获得ZIP中文件列表的路径
String[] fileTemp = entry.getName().replaceAll("\\\\", "/").replaceAll("//", "/").split("/");
if (fileTemp == null)
{
continue;
}
String tmp = unZipDirectory;
for (String dirFile : fileTemp)
{
tmp = tmp + "/" + dirFile;
File newFile = new File(tmp);
if (!newFile.exists())
{
System.out.println("mkdirs.newFile=" + newFile);
newFile.mkdirs();
}
}
}
else
{
byte[] buffer = new byte[1024];
FileOutputStream fos =
new FileOutputStream(new StringBuffer(unZipDirectory).append("/")
.append(entry.getName())
.toString());
while ((len = zis.read(buffer, 0, 1024)) != -1)
{
fos.write(buffer, 0, len);
}
fos.flush();
fos.close();
}
}
}
catch (Exception e)
{
e.printStackTrace();
LogX.trace(TAG, "unZip.unZipDirectory.Exception=" + e.getMessage());
return false;
}
finally
{
try
{
if (fis != null)
{
fis.close();
}
if (zis != null)
{
zis.close();
}
}
catch (Exception e)
{
e.printStackTrace();
LogX.trace(TAG, "unZip.unZipDirectory.closing.Exception=" + e.getMessage());
}
}
return true;
}
/**
* 删除目录下的所有文件和目录
* @param filePath
* @return 删除是否成功
* @see [类、类#方法、类#成员]
*/
public static boolean deleteAllFiles(String filePath)
{
boolean isComplete = false;
File file = new File(filePath);
if (!file.exists())
return isComplete;
String filesName[] = file.list();
System.out.println("deleteAllFiles.fileName=" + Arrays.toString(filesName));
if (filesName == null)
return true;
for (String temp : filesName)
{
if (temp != null)
{
deleteFile((new StringBuilder(String.valueOf(filePath))).append("/").append(temp).toString());
}
}
return true;
}
/**
* 删除文件
* @param fileName 文件名
* @return 删除文件是否成功
* @see [类、类#方法、类#成员]
*/
private static boolean deleteFile(String fileName)
{
boolean isComplete = false;
File file = new File(fileName);
if (!file.exists())
{
return true;
}
if (file.isDirectory())
{
isComplete = deleteAllFiles(fileName);
}
else
{
isComplete = true;
}
System.out.println("deleteFile.fileName=" + fileName);
file.delete();
return isComplete;
}