日期:2014-05-16 浏览次数:20880 次
前两天写了
http://wcf1987.iteye.com/admin/blogs/894160
是利用apache解压zip包的,大体实验都很正常,但是后来发现如果解压缩的zip中含有空文件夹,会发生一个问题
zipEntry = (ZipArchiveEntry) en.nextElement(); if (zipEntry.isDirectory()) { // mkdir directory String dirName = zipEntry.getName();
?zipEntry是一个目录时(当zip中含有空目录时,zipEntry就会指向这个目录),但是zipEntry.isDirectory()却无法正常识别这个目录,他会认为这是一个文件....
?? 解决方案
String s=zipEntry.getName(); if (s.endsWith(File.separator)) {
?
从zipEntry中看到他的name属性中还可以辨识出这是一个目录(因为最后以/结尾),所以这部分代码修改为如上。。。后来解压正常
?
?
/** * stop the thread */ public void stopThread() { shutdownRequested = false; this.interrupt(); } /** * the thread sleep for reducing the system pressure * * @param time */ private void sleepTime(int time) { try { Thread.sleep(time * 1000); } catch (InterruptedException e) { return; // TODO Auto-generated catch block } }
?
这是这两天写的关于线程sleep,但是又需要外部调用停止的方法,简而言之,就是在stop方法中interrupt唤醒线程,在sleep方法中catch InterruptedException e,然后返回。