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删除文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)