- 浏览: 599436 次
- 性别:
- 来自: 北京
最新评论
-
黑色幽默_cool:
这种不负责任的文章,多看一分钟都是浪费。
为什么使用ibatis而不用spring jdbcTemplate -
leibinhui:
不错啊 非常实用
JS正则表达式详解[收藏] -
suu:
写个存储过程,爆如下错误,是不是游标里的数据太多引起的?无法执 ...
使用Spring jdbc template调用Sybase带有返回结果集的储存过程-要点 -
travellers:
有SVR6了,为什么很多还在使用SVR4呢?
什么是SVR4?我们为什么要选择SVR4? -
dotjar:
生活是多么美好阿!
老公日记
在系统开发时,有时需要在程序中把正在用到plugin文件删除,重新更新。这需要首先在java程序中停止使用这个plugin文件,然后删除,重新更新。我在开发是遇到这样的问题,在java中停止使用了plugin文件,但是在用过FileObj.delete时,返回false,在文件系统中删除plugin文件时,OS报错,说该文件正在使用中,等几秒中在删除就可以删除了。
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
加上超时代码吧。。。否则真的要是删到了系统文件就卡死了。
PS:gc是作什么用的?
去了是否就删不去了?
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
/** * try to delete given file , try 10 times * @param f * @return true if file deleted success, nor false; */ public static boolean forceDelete(File f) { boolean result = false; int tryCount = 0; while(!result && tryCount++ <10) { logger.debug("try to delete file "+ f.getName() +" cnt:"+tryCount); System.gc(); result = f.delete(); } return result; }
评论
14 楼
。。。
2008-06-14
楼上,rm -f是Linux下用的.
13 楼
lbfhappy
2008-06-14
rm -f 是什么命令?
我这里运行不出来啊
我这里运行不出来啊
12 楼
wolfbrood
2008-06-14
lz这段代码肯定有问题,如果文件被一直占用,那么你即使删除一百次也删除不了,只有调用系统强制删除命令才可以。如楼上所说的那样。
11 楼
yuther
2008-06-14
干嘛 不用jni来调用系统自带的rm -f命令?
10 楼
xql80329
2008-06-13
如果现在删除了.那么后面其他程序用到 该怎么处理呢
9 楼
zhh2115
2008-06-05
牛!我用可以啦,System.gc()很有用
8 楼
sorphi
2007-08-22
是不是应该从classloader的实现入手?看载入jar时对底层文件是否加锁了?
http://blog.taragana.com/index.php/archive/how-to-unload-java-class/
http://blog.taragana.com/index.php/archive/how-to-unload-java-class/
7 楼
抛出异常的爱
2007-08-22
Ivan Li 写道
我尝试过多次,一般情况下cnt=1时就能删除,现在cnt最大只是到5就结束了
加上超时代码吧。。。否则真的要是删到了系统文件就卡死了。
PS:gc是作什么用的?
去了是否就删不去了?
6 楼
IvanLi
2007-08-22
我尝试过多次,一般情况下cnt=1时就能删除,现在cnt最大只是到5就结束了
5 楼
coolzyt
2007-08-21
这样10次太快了吧,可能还是删不掉,建议再加一个Thread.sleep(1000)?
4 楼
jwmianzu
2007-08-21
楼主,System.gc()调用以后不适立刻就进行垃圾回收的,如果不是对跨平台要求严格看是否能用java调用系统的强行删除命令。别的办法我也不知道了
3 楼
jwfpd
2007-08-21
Ivan Li 写道
以下是commons-io里forceDelete的源码,它满足不了我上面说的需求
收下啊/** * Delete a file. If file is a directory, delete it and all sub-directories. * <p> * The difference between File.delete() and this method are: * <ul> * <li>A directory to be deleted does not have to be empty.</li> * <li>You get exceptions when a file or directory cannot be deleted. * (java.io.File methods returns a boolean)</li> * </ul> * * @param file file or directory to delete, must not be <code>null</code> * @throws NullPointerException if the directory is <code>null</code> * @throws IOException in case deletion is unsuccessful */ public static void forceDelete(File file) throws IOException { if (file.isDirectory()) { deleteDirectory(file); } else { if (!file.exists()) { throw new FileNotFoundException("File does not exist: " + file); } if (!file.delete()) { String message = "Unable to delete file: " + file; throw new IOException(message); } } }
2 楼
IvanLi
2007-08-21
以下是commons-io里forceDelete的源码,它满足不了我上面说的需求
/** * Delete a file. If file is a directory, delete it and all sub-directories. * <p> * The difference between File.delete() and this method are: * <ul> * <li>A directory to be deleted does not have to be empty.</li> * <li>You get exceptions when a file or directory cannot be deleted. * (java.io.File methods returns a boolean)</li> * </ul> * * @param file file or directory to delete, must not be <code>null</code> * @throws NullPointerException if the directory is <code>null</code> * @throws IOException in case deletion is unsuccessful */ public static void forceDelete(File file) throws IOException { if (file.isDirectory()) { deleteDirectory(file); } else { if (!file.exists()) { throw new FileNotFoundException("File does not exist: " + file); } if (!file.delete()) { String message = "Unable to delete file: " + file; throw new IOException(message); } } }
1 楼
lighter
2007-08-21
commons io里面的FileUtils类有很多的类似删除的方法,如
FileUtils.forceDelete(file)
FileUtils.forceDelete(file)
发表评论
-
use hibernate3-maven to export sql based on entity
2011-08-07 18:19 1347<plugin> <group ... -
uninstall mysql completely in my Mac X 10.6
2011-08-07 12:19 1151sudo rm /usr/local/mysql ... -
my vimrc
2011-05-14 11:02 1682copy from http://www.vi-improve ... -
使用HSQLDB来作EJB3 EntityBean到Unit Test要点
2010-01-20 17:17 2067add <property name=" ... -
user xrandr to change my desktop's resolution
2009-12-16 17:04 1638xrandr --newmode "1280x ... -
XSS的关键之列表
2009-10-11 17:20 1787//this field are used tp esc ... -
python查看方法帮助(from dive into python)
2009-09-30 11:31 2576def info(object, spanding=10, c ... -
selenium 测试ajax的关键
2009-01-20 18:26 41891: waitForCondition(contidtion, ... -
RichFaces 手记
2008-10-07 15:46 0安装,除了richfaces 下载包中的jar( " ... -
代码检查工具
2008-09-25 11:48 2527findBugs, PMD, CheckStyle find ... -
CI工具hudson
2008-09-24 17:04 3080CI工具除了hudson,还有很多,例如CruiseContr ... -
创建solaris package step by step
2008-09-24 11:27 1889原文地址:http://www.ibiblio.org/pub ... -
什么是SVR4?我们为什么要选择SVR4?
2008-09-23 14:13 4878http://www.lslnet.com/linux/f/d ... -
IPS 中的pkg command学习笔记
2008-09-22 17:18 1799pkg(1): 使用pkg(1)来创建一个镜像,安装,升级,管 ... -
On Board前的学习计划
2008-09-18 09:37 14691:在virtual box 上虚拟一个OpenSolaris ... -
YUI Grid CSS的优雅设计
2008-09-02 22:38 2770最近加入了一个GAE的项目cpedialog,该项目的前端布局 ... -
我很懒,但是懒人有懒办法
2008-08-18 17:06 1738今天要使用jackrabbit做个小东西,上apache一看, ... -
当XPath遇上NameSpace
2008-07-23 19:39 6519在jdk5.0中,已经包含了对Xpath的支持,可一通过下面的 ... -
ubuntu下安装ipmsg-飞鸽传书
2008-07-21 09:32 28451 先下载 源码 下载的是gnome2版本的源码 http ... -
sudo 执行时无密码(不安全)
2008-07-17 17:18 2170sudo visudo root ALL=(ALL) ...
相关推荐
本实例利用java强制删除使用中的文件,demo中删除的是mdb文件,首先利用jdbc获取mdb的数据库连接,再打开mdb文件,程序照样能强制删除!类似于360强制删除文件
把要删除的文件或者目录拖放到这个bat文件的图标上就可以删除了!
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
文件暴力删除工具 1[1].4┊删除运行中文件或者被占用的文件 文件暴力删除工具 1[1].4┊删除运行中文件或者被占用的文件 文件暴力删除工具 1[1].4┊删除运行中文件或者被占用的文件
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
在删除文件或目录时,你是否碰上“正在使用,无法删除”之类的提示?没关系,你非删不可是吧?来,用这个吧!
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
JAVA WEB框架,java网站一个模块只用写一个文件 以前的servlet在现在的开发中已经不怎么常见,因为操作起来比较原始和麻烦。有些人就是不安于现状去改造它。 做得好的有Struts,Hybernate,Spring那么这些框架都是很...
第7章 Java中的方法——给汽车丰富多彩的功能 154 教学视频:2小时55分钟 7.1 方法:让汽车动开动 154 7.1.1 引出问题:开动汽车 154 7.1.2 那么,方法到底是什么呢? 155 7.1.3 方法调用过程初探 156 7.2 ...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
第7章 Java中的方法——给汽车丰富多彩的功能 154 教学视频:2小时55分钟 7.1 方法:让汽车动开动 154 7.1.1 引出问题:开动汽车 154 7.1.2 那么,方法到底是什么呢? 155 7.1.3 方法调用过程初探 156 7.2 ...
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面...
用递归的方法删除一个目录下的所有文件及子目录.代码在这一个java类中.在main方法中写个存在的目录(最好是不用了的),直接运行可看到效果
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...