public static boolean deleteQuietly(File file) { if (file == null) { return false; } else { try { if (file.isDirectory()) { cleanDirectory(file); } } catch (Exception var3) { } try { return file.delete(); } catch (Exception var2) { return false; } } }
时间: 2024-02-10 09:12:39 浏览: 119
这段代码是用于在删除文件或文件夹时忽略失败的情况,即不抛出异常并返回一个布尔型结果。它首先判断要删除的文件是否为 null,如果是则返回 false,否则继续执行。如果要删除的是一个目录,则调用 cleanDirectory 方法来清空目录中的所有文件和文件夹。不论是否成功,它都不会抛出异常。最后,它调用 file.delete() 方法来删除文件或文件夹,并返回一个布尔型结果,表示删除是否成功。如果删除失败,则返回 false。
相关问题
请查询java.io.File类相关API,使用java程序,依次完成如下操作。 【警告:java程序删除文件时,不会将文件放入回收站,慎重操作!!!】 1、请在D:\FileTest目录(该目录已存在)下创建一个文件java.txt 2、请在D:\FileTest目录(该目录已存在)下创建一个文件夹javase 3、请在D:\FileTest目录(该目录已存在)下创建一个多级目录JavaWEB\HTML 4、请在D:\FileTest\heima目录(该目录不存在)下,创建一个文件hello.txt 5、请将需求1中,创建的文件java.txt删除 6、请将需求3中,创建的目录JavaWEB删除 7、请将需求4中,创建的文件hello.txt,改名为world.txt
以下是Java程序的实现:
```java
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) {
String dirPath = "D:/FileTest";
String filePath = dirPath + "/java.txt";
String folderPath1 = dirPath + "/javase";
String folderPath2 = dirPath + "/JavaWEB/HTML";
String newDirPath = dirPath + "/heima";
String oldFilePath = newDirPath + "/hello.txt";
String newFilePath = newDirPath + "/world.txt";
// 1、创建文件 java.txt
File file = new File(filePath);
try {
file.createNewFile();
System.out.println("创建文件 " + filePath + " 成功!");
} catch (IOException e) {
e.printStackTrace();
}
// 2、创建文件夹 javase
File folder1 = new File(folderPath1);
folder1.mkdir();
System.out.println("创建文件夹 " + folderPath1 + " 成功!");
// 3、创建多级目录 JavaWEB\HTML
File folder2 = new File(folderPath2);
folder2.mkdirs();
System.out.println("创建目录 " + folderPath2 + " 成功!");
// 4、在 D:\FileTest\heima 目录下创建文件 hello.txt
File dir = new File(newDirPath);
dir.mkdir();
System.out.println("创建文件夹 " + newDirPath + " 成功!");
File oldFile = new File(oldFilePath);
try {
oldFile.createNewFile();
System.out.println("创建文件 " + oldFilePath + " 成功!");
} catch (IOException e) {
e.printStackTrace();
}
// 5、删除文件 java.txt
if (file.exists()) {
file.delete();
System.out.println("删除文件 " + filePath + " 成功!");
} else {
System.out.println("文件 " + filePath + " 不存在!");
}
// 6、删除目录 JavaWEB
File folder3 = new File(dirPath + "/JavaWEB");
boolean result = deleteFolder(folder3);
if (result) {
System.out.println("删除目录 " + folderPath2 + " 成功!");
} else {
System.out.println("目录 " + folderPath2 + " 不存在!");
}
// 7、把 hello.txt 改名为 world.txt
File newFile = new File(newFilePath);
if (oldFile.exists()) {
oldFile.renameTo(newFile);
System.out.println("将文件 " + oldFilePath + " 改名为 " + newFilePath + " 成功!");
} else {
System.out.println("文件 " + oldFilePath + " 不存在!");
}
}
/**
* 递归删除文件夹及其下所有文件
* @param folder 要删除的文件夹
* @return 删除成功返回 true,否则返回 false
*/
private static boolean deleteFolder(File folder) {
if (folder.exists()) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
deleteFolder(file);
} else {
file.delete();
}
}
}
}
return folder.delete();
}
}
```
注意事项:
- 创建文件使用 `createNewFile()` 方法,创建文件夹使用 `mkdir()` 或 `mkdirs()` 方法。
- 删除文件使用 `delete()` 方法,删除目录需要递归删除子文件及其下所有文件,可以使用上述程序中的 `deleteFolder()` 方法。
- 改名使用 `renameTo()` 方法。
JAVA1.检索出D盘 itcast1 文件夹中包含的对象,并将其绝对路径展示出来。 2.过滤D盘itcast1 文件夹及子文件夹中Java 文件,并将其绝对路径展示出来。(至少用两种 方法) 3.删除掉itcast2 文件目录及所包含的文件。
1. 在Java中,我们可以使用`java.io.File`类及其方法来检索和获取文件信息。首先,创建一个File对象表示D盘的itcast1文件夹,然后遍历其内容获取绝对路径。示例代码如下:
```java
import java.io.File;
public class Main {
public static void main(String[] args) {
File dir = new File("D:\\itcast1");
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
} else {
System.err.println("Directory is empty or not found.");
}
}
}
```
2. 获取D盘itcast1文件夹及其子文件夹中的Java文件有两种方法:
- **第一种方法:使用递归方法**,检查每个文件是否以`.java`结尾:
```java
import java.io.File;
// ...其他部分...
private static boolean isJavaFile(File file) {
return file.getName().endsWith(".java");
}
// ...主函数...
for (File file : dirsAndFiles(dir)) {
if (isJavaFile(file)) {
System.out.println(file.getAbsolutePath());
}
}
// 辅助方法用于递归遍历子目录
private static List<File> dirsAndFiles(File dir) {
List<File> result = new ArrayList<>();
result.addAll(Arrays.asList(dir.listFiles()));
if (dir.isDirectory()) {
for (File subDir : dir.listFiles()) {
result.addAll(dirsAndFiles(subDir));
}
}
return result;
}
```
- **第二种方法:使用java.nio.file包**,使用`Files.walk()`方法可以更简洁地处理目录树:
```java
import java.nio.file.*;
// ...其他部分...
public static void main(String[] args) {
Path path = Paths.get("D:/itcast1");
try {
Files.walk(path)
.filter(Files::isRegularFile)
.filter(path -> path.toString().endsWith(".java"))
.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
```
3. 对于删除itcast2文件夹及其内容的操作,已经在前面的答案中详细解释过了。如果你需要在Java中执行这个操作,可以直接使用上述方法中的相应片段,替换路径即可。
阅读全文