java File delete()执行失败原因(转)
java.io.File里的delete操作很实用也很常用,可以用来删除单独的文件和某一目录。但有时候会出现delete失败的情况,出现这种情况的原因一般有以下几种:
1、删除时还有其他程序在使用该文件,此时将无法正确删除
2、没有close关闭和该文件相关的所有输入输出流等,导致无法删除(这一点是最容易忘记的,你犯的可能就是这一条)
3、当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。这里可以采用listFiles对目录下的文件或者目录进行处理。
下面给出一个具体的例子:
File f = new File(path);
DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
if (f.exists()) {
System.out.println(f.getAbsoluteFile());
if (!f.delete()) {
System.out.println("请关闭使用该文件的所有进程或者流!!");
} else {
System.out.println(f.getName()+" 成功被删除!");
}
}
此时f是无法delete的,即f.delete()将返回false,原因就在于没有关闭dos.所以需要在if之前加入一句f.close(),这样就可以删除成功了。
File f = new File(path);
DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
dos.close();
if (f.exists()) {
System.out.println(f.getAbsoluteFile());
if (!f.delete()) {
System.out.println("请关闭使用该文件的所有进程或者流!!");
} else {
System.out.println(f.getName()+" 成功被删除!");
}
}
java File delete()执行失败原因(转)的更多相关文章
- java File delete()执行失败原因
java.io.File里的delete操作很实用也很常用,可以用来删除单独的文件和某一目录.但有时候会出现delete失败的情况,出现这种情况的原因一般有以下几种: 1.删除时还有其他程序在使用该文 ...
- java File delete() 失败,又没有报错。
因为该文件流还没关闭,就执行了delete(),所以删除失败. 先举几个可以删除掉文件和删除不掉文件的例子(先在F盘创建test1.txt文件,然后可以直接拷贝代码到IDE执行),最后总结下原因: 例 ...
- java File delete 无法删除文件的原因。
windows下使用java.io.File.delete()方法删除文件时,返回值为true. 但是本地文件仍然存在,也就是说没有删除成功. 这时候你要检查下你传进来的文件目录格式是否正确. 正确: ...
- ajax执行失败原因
ajax 跳入error的一些原因 先放一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: ...
- Java程序员面试失败的5大原因
下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一 ...
- crontab自动执行任务,失败原因记录
服务器上使用crontab部署这两个每分钟自动执行的命令.首先,这两个命令是之前的人部署的,在我接手之前,就一直在了的.根据命令,实际上应该是做到每分钟都执行一次脚本.但是实际操作中,却发现,其实并没 ...
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
- java File处理
/**************************************************************************************工具类********** ...
- Java File文件操作 创建文件\目录,删除文件\目录
Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...
随机推荐
- 一条命令深度清理你的mac
一条命令深度清理你的mac mac 用了一段时间后很快发现硬盘空间不够了,就想找一些磁盘清理的工具,但是发现居然都是收费的. 就手工操作吧.方法其实非常简单. 就一条命令, cd / du -hd 5 ...
- OO 抽象类与接口的区别
抽象类与接口的区别 抽象类与接口的区别 一.抽象类:(抽象类适用于同一系列,并且有需要继承的成员) 概念: 1.使用abstract修饰: 2.抽象类中可以包含抽象方法: 3.抽象类只能被子类继承:( ...
- Kotlin 字符模板
Kotlin的字符模板和c语言的格式化输出有点像. 先来说说Kotlin 的字符模板怎么弄. fun main(args:Array<String>) { var name="T ...
- java并发编程(更新)
概念理解:①串行程序②并发程序: 线程安全问题: 同一进程中的所有线程共享进程中的内存地址空间.如果没有明确的同步机制来管理共享数据,那么当一个线程正在使用某个变量时,另一个线程可能同时访问这个变量, ...
- 基于 Django 的手机管理系统
前段时间和小组一起完成数据库作业,觉得收获挺多的,分享到博客来. 一.概述 打算通过设计数据库,然后结合 Python 框架Django,实现在网页上对数据库的增删改查(本例以手机的管理为例,不考虑订 ...
- loj #2013. 「SCOI2016」幸运数字
#2013. 「SCOI2016」幸运数字 题目描述 A 国共有 n nn 座城市,这些城市由 n−1 n - 1n−1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以 ...
- arx创建作用域(于)当前文档全局变量
普通的全局变量是作用于整个AutoCAD程序中,所有的文档都将能存取,某些时候,我们需要某一个全局变量仅仅在当前文档有效,便于程序之间通信或者变量值记忆. 在高版本的objectARX向导中,已经为我 ...
- 自动备份数据库crond
#!/bin/bash # export and backup the abgent_web database.sql mysqldump -uuser -ppassword ltden_db --s ...
- P2045 方格取数加强版 最大费用最大流
$ \color{#0066ff}{ 题目描述 }$ 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每 ...
- 181114socke编程
一.Socket Families 地址簇 socket.AF_UNIX socket.AF_INET socket.AF_INET6 二.Socker Types socket.SOCK_STREA ...