file.delete()删除不掉文件
2017-06-05 17:28
991 查看
查阅了网上的资料,很多人说是有文件流没有关闭,导致文件被占用,无法删除,但是检查并未发现存在未关闭文件流。
后在网上看到一种解决方式
public static boolean forceDelete(File f)
{
boolean result = false;
int tryCount = 0;
while(!result && tryCount++ <10)
{
System.gc();
result = f.delete();
}
return result;
} 执行10次垃圾回收后删除,目前可以解决这个问题
继续查阅资料,好像是因为映射占用的问题,在如下网站有解决方式
https://stackoverflow.com/questions/2972986/how-to-unmap-a-file-from-memory-mapped-using-filechannel-in-java
public static void unMapBuffer(MappedByteBuffer buffer, Class channelClass) {
if (buffer == null) {
return;
}
try {
Method unmap = channelClass.getDeclaredMethod("unmap", MappedByteBuffer.class);
unmap.setAccessible(true);
unmap.invoke(channelClass, buffer);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
后在网上看到一种解决方式
public static boolean forceDelete(File f)
{
boolean result = false;
int tryCount = 0;
while(!result && tryCount++ <10)
{
System.gc();
result = f.delete();
}
return result;
} 执行10次垃圾回收后删除,目前可以解决这个问题
继续查阅资料,好像是因为映射占用的问题,在如下网站有解决方式
https://stackoverflow.com/questions/2972986/how-to-unmap-a-file-from-memory-mapped-using-filechannel-in-java
public static void unMapBuffer(MappedByteBuffer buffer, Class channelClass) {
if (buffer == null) {
return;
}
try {
Method unmap = channelClass.getDeclaredMethod("unmap", MappedByteBuffer.class);
unmap.setAccessible(true);
unmap.invoke(channelClass, buffer);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
相关文章推荐
- 彻底删除文件(File Delete Absolutely) 1.02 已在华军软件园和天空软件站上发布
- 屏幕录象java版软件,小心共享下.一时兴起写的哦.__删除文件:DeleteFile.java
- FileSystem.DeleteDirectory遇到"无法删除 文件:无法读取源文件或磁盘"
- java中File的delete()方法删除文件失败的原因
- C#删除只读文件或文件夹(解决File.Delete无法删除文件)
- 彻底删除文件(File Delete Absolutely) 1.02 已在华军软件园和天空软件站上发布
- 彻底删除文件(File Delete Absolutely) 最新3.01版本 也已经在中关村在线升级成功
- java中File的delete()方法删除文件失败的原因
- C#删除只读文件或文件夹(解决File.Delete无法删除文件)
- java File的delete方法删除文件失败
- File.Delete不能删除文件的问题
- 巨高兴,自己的 彻底删除文件“File Delete Absolutely ”2.01 版本 已经在国内6大软件下载网站发布
- 用 File Delete Absolutely 1.03 删除文件后,Finaldata 也无法恢复
- 本人开发的软件“彻底删除文件(File Delete Absolutely)” 1.03 获“中关村在线”磁盘工具排行榜第6名
- java.io.file.delete()不能正常删除文件的原因!
- 本人开发的软件“彻底删除文件(File Delete Absolutely)” 1.03 获“中关村在线”磁盘工具排行榜第6名
- 偶编写的软件 彻底删除文件(File Delete Absolutely) 1.03 已发布在国内6大软件下载网站,新增功能简介
- 巨高兴,自己的 彻底删除文件“File Delete Absolutely ”2.01 版本 已经在国内6大软件下载网站发布
- java File delete 无法删除文件的原因。
- java中File的delete()方法删除文件失败的原因