JAVA File类 删除文件

发布网友 发布时间:2022-04-22 23:00

我来回答

3个回答

热心网友 时间:2023-07-05 19:39

1、创建File对象File(String pathname):pathname录入时录入的路径字符串需要注意/和\的运用,但是由于java开发出的程序需要运用到不同的系统上,因此,一般以File.separator来代替。

2、创建File对象File(File parent,String child):此为创建文件对象的另外一种方式,parent为已创建的对象,这种情况,parent一般为文件夹的路径,child为文件的名称。

3、判断File对象是否是一个文件:isFile()返回值true为文件,false为非文件。如下程序中,由于file1对象为文件夹,非文件,返回为false;file2对象为文件,返回true。

4、文件的内容长度(占用字节):length()当前File对象所表示的文件所占用的字节量。在testFile1.txt中事先录入部分数据,file2指向的File对象,内容长度为8。

5、判断文件是否存在,在硬盘创建文件前,一般需要判断硬盘中文件是否存在,如果不存在才创建文件,这样可以避免文件重复创建。

6、文件创建:createNewFile()当File对象调用文件创建方法后,硬盘中文件才会被创建。

热心网友 时间:2023-07-05 19:39

你程序中有个错误,并且逻辑有问题,代码修改了,如下:

public class Test2001 {
private static String s;

public static void main(String[] args) {
test1();// 删除文件
}

private static void test1()  {
System.out.println("请输入你要删除的文件名");
s = new Scanner(System.in).next();
File file = new File("E:/");
deleteFile(file);
}

private static void deleteFile(File file) {
File Array[] = file.listFiles();
for (File f : Array) {
if (f.isFile()) {// 如果是文件
if (f.getName().equals(s)) {
f.delete();
System.out.println("删除文件成功");
return;
}
}
}
System.out.println("删除文件失败,该文件不存在");
}
}

 1.错误

    判断文件名是否相等:if(f.getName()==s) 

    字符串判断值是否相等使用equals方法,==是比较内存地址,所以你的for一直匹对不到相同文件

2. 逻辑错误

  

private static void deleteFile(File file) {
File Array[] = file.listFiles();
for (File f : Array) {
if (f.isFile()) {// 如果是文件
if (f.getName() == s) { // 这里已经在比较文件是否相等
f.delete();
System.out.println("删除文件成功");
break;
} else {// 如果不是要删除的文件,跳到下一次循环
continue;
}
} else {// 如果不是文件
deleteFile(file); // 这里
}
}
System.out.println("删除文件失败,该文件不存在");
}

if (f.isFile()) {// 如果是文件
}
} else {// 如果不是文件
deleteFile(file); // 这里不需要再次deleteFile,只会迭代,按钮的逻辑,不是文件,就跳过,应该是continue

}


亲,如果回答满意,请即时采纳,你的理解是我回答的动力,谢谢!!!

热心网友 时间:2023-07-05 19:40

报什么错?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com