java 删除文件夹和子文件夹中的指定文件

java 删除文件夹和子文件夹中的指定文件,第1张

1、得到要删除aatxt文件的根目录,可以用JFileChooser选择,也可以写死。

2、遍历、删除。

(1)取得目录以后,遍历其下面所有的文件夹和文件。

碰到文件时,判断其名称是否为aatxt,如果是,删除,如果不是继续遍历,

碰到文件夹(目录)时,调用本身从(1)开始遍历该目录,完成后继续遍历。

这个需要用到递归,所以不确定你能不能理解,我实现了一下,如下:

import javaioFile;

public class DeleteAA {

public static void main(String[] args) {

DeleteAA aa=new DeleteAA();

aadelete(new File("D:\\0526"));

}

private void delete(File file){

if(fileisDirectory()){

File[] files = filelistFiles();

for (File file2 : files) {

delete(file2);

}

}else{

String name=filegetName();

if("aatxt"equals(name)){

Systemoutprintln(filegetAbsolutePath());

filedelete();

}

}

}

}

两种方法:

方法一,

File file = new File("");(中填写你的文件的路径,注意:win下需要转义,例如:D:\\testtxt,Linux下直接填写,例如:/home/user001/texttxt)

if(fileexists())

filedelete();

方法二,

利用Runtime(Runtime是java的一个取得系统相关进程的类,说白了就是调用系统的命令删除文件)

Runtime run = RuntimegetRuntime();

try {

Process p = runexec(cmd); //cmd为String,其内容为对应系统的删除命令,例如:在win下,应该写成:String cmd = "del "+你的文件路径以及文件名;

pwaitFor();

} catch (Exception e) {

eprintStackTrace();

}

方法二,速度比较快哦,不过如果小文件的话,速度没什么分别。

先告诉你思路

1先读取文件(多文件的话 递归)

File file=new File(filename);

2再 判断该文件的属性

具体请看api文档

3如果是只读的 去掉

4有隐藏的下层文件的文件夹删除

你少看了一个中括号。

两种差不多,不过第一种形式不规范,如果函数的parameter是文件,那么在第一个if里已经删除了。后面一个就删除一个已经删除的文件。如果是文件夹,那么就把这个文件夹删除。如果要规范化,直接把

if (fileisFile()) {

filedelete();

}else

去掉,只加一句isDirectory的判断。

即,程序改为:

private void deleteFile(File file) {

if (fileisDirectory()) {//Delete all files in the directory, if it's the case

File files[] = filelistFiles();

for (int i = 0; i < fileslength; i++) {

thisdeleteFile(files[i]);

}

}

else if (!fileexists()) {//File not exist

Systemoutprintln("所删除的文件不存在!" + '\n');

return;

}

filedelete();//Delete the file or the directory

}

第二种形式,如果是文件,删除文件;如果是文件夹,删除文件夹中的内容,然后删除文件夹本身。

------------------------------------------

总结,第一种形式在file是文件类型的时候重复删除,第二种形式没有这个问题。并不是在for里面外面的区别。:)

程序整体思路如下:

JAVA删除文件内容,需要将文件内容读出来,然后再写回去,肯定需要用io处理。

任何程序的IO *** 作都逃不了Open与Close,如果打开了一个文件,进程将会锁住这个文件,不让其进程或者线程写入他,一旦读取完文件之后,需要Close掉他,这个是一套标准来着。

如果要实现这种功能,最好的方法是使用一个临时的内存去保存读取文件的数据,然后重新进行 *** 作,覆盖掉读取的文件。

以上就是关于java 删除文件夹和子文件夹中的指定文件全部的内容,包括:java 删除文件夹和子文件夹中的指定文件、java如何删除文本文件、java删除文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10209048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存