十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你程序中有个错误,并且逻辑有问题,代码修改了,如下:
创新互联是一家专业提供东海企业网站建设,专注与做网站、成都网站建设、H5高端网站建设、小程序制作等业务。10年已为东海众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
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
}
亲,如果回答满意,请即时采纳,你的理解是我回答的动力,谢谢!!!
File
F=new
File(路径);/通过将给定路径名字符串转换为抽象路径名来创建一个新
File
实例。
F.delete();//删除此抽象路径名表示的文件或目录。
文件的移动的话,得通过输入输出流
FileInputStream
FI=new
FileInputStream(F);
FileOutputStream
FO=new
FileOutputStream(F);
wile(FI.read()!=EOF)
{
FO.write();
}
FIle file = new File("/image/123.jpg");
if (file.exists()){
file.delete();
}
使用File对象操作删除,会判断是否存在,如存在就删了。
如果想找路径,使用File类的getAbsolutePath()方/法就能得到/绝/对/路/径/的字符串表示。
例如上面的对、象file,使用
String str = file.getAbsolutePath();
System.out.println(str);
你在/控/制/台co/ns/ole/窗口就能看到了。
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;
}
}