标题: File类中删除指定后缀名的文件?为什么不可以呢? [打印本页] 作者: 金肖 时间: 2012-5-4 21:34 标题: File类中删除指定后缀名的文件?为什么不可以呢? public class DeletFileTest {
public static void main(String[] args) {
File f = new File("c:\\a"); //删除c盘下a目录中的.java文件
deletDemo(f);
}
public static void deletDemo(File f) {
String[] file = f.list();
for (int i = 0; i < file.length; i++) {
if (file[i].endsWith(".java")) {
deletDemo(file[i]); //此处为什么会报错呢
}
}
}
}
//如果这种方法不可以,那么怎么样才能删除指定目录下中指定后缀名的文件?作者: 褚代江 时间: 2012-5-4 22:08 本帖最后由 褚代江 于 2012-5-4 22:11 编辑
你这个程序
public static void deletDemo(File f) {
String[] file = f.list();//这里只是获取到了文件的名字
for (int i = 0; i < file.length; i++) {
if (file.endsWith(".java")) {
// deletDemo(file);
new File("c:\\a\\"+file).delete();//这里要从新将文件获取到后再调用delete方法删除 }
}
}
有种简单的方法是
public static void deletDemo(File f) {
public static void deletDemo(File f) {
File files[]=dir.listFiles();//这里得到的是文件对象集合
for (int i = 0; i < file.length; i++) {
if (file.endsWith(".java")) {
// deletDemo(file);
file.delete();//file是文件对象,所以可以直接使用delete方法 }
}
} 作者: 褚代江 时间: 2012-5-4 22:13 本帖最后由 褚代江 于 2012-5-4 22:17 编辑
奇怪为什么我打出来的file,就变成file了呢,怎么显示不出来哦,改了两次都显示不出来
好吧,变成纯文本就行了
哎,他自动斜体了,太智能了把作者: 任睦强 时间: 2012-5-4 23:12
public class DeletFileTest {
public static void main(String[] args) {
File f = new File("c:\\a"); //删除c盘下a目录中的.java文件
deletDemo(f);
}
public static void deletDemo(File f) {
String[] file = f.list();
for (int i = 0; i < file.length; i++) {
if (file[i].endsWith(".java"))
// deletDemo(file[i]); 换成File f1=new File(“C: \\a”+file[i]); f1.delete(); //这样就行了作者: 贾联国 时间: 2012-5-4 23:44
不知道楼主是不是要删除目录下所有的.java文件,包括给定目录下文件夹里的.java。
看lz的意思好像要用递归,要递归的话代码是这样的,希望对LZ有帮助!
import java.io.File;
public class DeletFileTest {
public static void main(String[] args) {
File f = new File("c:\\a");
deletDemo(f);
}
public static void deletDemo(File f) {
File files[]=f.listFiles();
for (int i = 0; i < files.length; i++) {
if(files.isFile()) { //判断是否是文件,是就删.java
if (files.toString().endsWith(".java")) {