
public class FileDelDemo {
boolean flag
public static void main(String[] args) {
String path = "D://兄清aa.txt"
new FileDelDemo().deleteFile(path)
}
public boolean deleteFile(String sPath) {
flag = false
File file = new File(sPath)
// 路径为文羡改前件且不歼乎为空则进行删除
if (file.isFile() &&file.exists()) {
file.delete()
flag = true
}
return flag
}
}
空文件夹的删除与不空文件夹是一样的运物。解释如下:
1private static void delete(File dir) throws IOException {
// 获取所有子文件
2 File[] subFiles = dir.listFiles()
// 遍历所有子文件
3 if (subFiles != null)
4 for (File subFile : subFiles)
5 if (subFile.isFile())
6 subFile.delete()// 如果是文件就删除
7 else
8 delete(subFile)// 如果是文件夹就递归 这里进入了子文件夹中
// 所有子文件都删除之后, 删除当前文件夹
9 dir.delete()
10 }
对于不空文件夹,2行会得到其子文件和文件夹,之后在3-8行递归删毕早除其子文件和文手悄雀件夹,待子文件和文件夹删除后9行删除这个文件夹本身。
对于空文件夹,2行得到的字文件和文件夹为null,3行进行判断后4-8行不执行,直接执行9行删除文件夹本身,就能把该空文件夹删除。
实质上一个不空的文件执行完8行以后,已经删除了所有字文件和文件夹,就成了空文件夹,9行删除的一直都是空文件夹。
空文件是不包含任何内容的文件夹,但这并不表明该文件夹的路径为null。所以1行程序入口处的参数dir是有效的,空文件夹参数也能够正确执行。
删除文件夹下的所有文件需要用到java.io.File类的各个方法,并需要使用简单的递归算法。示例代码如下:
import java.io.File
public class Test
{
public static void main(String args[]){
Test t = new Test()
delFolder("c:/bb")
System.out.println("deleted")
}
//删除文件夹
//param folderPath 文件夹完整绝对路径
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath)//删除完里面所有内容
String filePath = folderPath
filePath = filePath.toString()
java.io.File myFilePath = new java.io.File(filePath)
myFilePath.delete()//删除空文件夹
} catch (Exception e) {
e.printStackTrace()
}
}
//删除指定文件夹下所有文件启慧
//param path 文件夹完整绝对散郑路径
public static boolean delAllFile(String path) {
boolean flag = false
File file = new File(path)
if (!file.exists()) {
return flag
}
if (!file.isDirectory()) {
return flag
}
String[] tempList = file.list()
File temp = null
for (int i = 0i <tempList.lengthi++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i])
} else {
temp = new File(path + File.separator + tempList[i])
}
if (temp.isFile()) {
temp.delete()
}
if (temp.isDirectory()) {
delAllFile(path + "/" + tempList[i])//先删除文件夹里面的文件
delFolder(path + "/" + tempList[i])//再悄掘答删除空文件夹
flag = true
}
}
return flag
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)