
正文
java中删除文件代码 java直接删除文件夹
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
JAVA File类 删除文件
你程序中有个错误,并且逻辑有问题,代码修改了,如下:
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
}
亲,如果回答满意,请即时采纳,你的理解是我回答的动力,谢谢!!!
相关问答
Q1: java 删除文件中的数据
1、如果只是想要文件中的内容,可以使用如下代码:
FileOutputStream fs = new FileOutputStream(new File("C:\\buyterms.txt"));
2、如果是想要文件夹中的内容,可以使用如下代码:
package com.xx;
import java.io.File;
public class Test {
public static void main(String[] args) {
String fileRoot = "C:/Users/xx/Desktop/xx/xxx";
delFolder(fileRoot);
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 = 0; i tempList.length; i++) {
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;
}
}
Q2: Java中如何进行文件(及文件夹)的新建,移动,删除等?给出代码
File
F=new
File(路径);/通过将给定路径名字符串转换为抽象路径名来创建一个新
File
实例。
F.delete();//删除此抽象路径名表示的文件或目录。
文件的移动的话,得通过输入输出流
FileInputStream
FI=new
FileInputStream(F);
FileOutputStream
FO=new
FileOutputStream(F);
wile(FI.read()!=EOF)
{
FO.write();
}
Q3: java 怎么删除文件夹及里面的文件,现在程序是只有文件夹名字的变量?
在 Java 中,可以使用 File 类来删除文件夹及其中的文件。
首先,您可以使用 File 类的构造函数来创建一个 File 对象,该对象表示文件夹的路径,如下所示:
String folderName = "folder";
File folder = new File(folderName);
然后,您可以使用 delete() 方法来删除该文件夹。
但是,如果文件夹不为空,则 delete() 方法将无法删除文件夹,因此您还需要递归删除文件夹中的所有文件。
下面是一个示例代码,可以帮助您删除文件夹及其中的所有文件:
import java.io.File;
public class Main {
public static void main(String[] args) {
String folderName = "folder";
File folder = new File(folderName);
deleteFolder(folder);
}
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File f: files) {
if (f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
}
关于java中删除文件代码和java直接删除文件夹的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。




