题目是:
编写一个程序,要求删除一个非空目录,并列出删除目录的文件名。
import java.io.File;
public class myDeleteDirectory {
/**
* @param args
*/
public static void main(String[] args) {
deleteDirectory("D:/a");
}
public static void deleteDirectory(String path) {
File f = new File(path);
if (!f.exists()) {
System.out.println("该目录不存在!");
return;
}
if (f.delete()) {
// File tf = new File("testFile");
// System.out.println("该目录为" + tf.getPath() );
System.out.println("该目录为" + f.getAbsolutePath());
} else {
// System.out.println(f.delete());
// System.out.println("this directory is not empty!");
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
if (!files[i].delete()) {
deleteDirectory(files[i].getAbsolutePath());
}
if (files[i].delete()) {
System.out.println("delete directory : "
+ files[i].getAbsolutePath());
}
} else {
files[i].delete();
System.out.println("该文件为" + files[i].getAbsolutePath());
}
}
f.delete();
System.out.println("该目录为" + f.getAbsolutePath());
}
}
}
运行结果:
该文件为D:\a\b\c.txt
该文件为D:\a\b\c1.txt
该目录为D:\a\b
该文件为D:\a\b.txt
该文件为D:\a\b1.txt
该文件为D:\a\b2.txt
该文件为D:\a\b3.txt
该目录为D:\a
人人网的面试题,当时没写出来,我哭,估计没有机会二面了。。。
分享到:
相关推荐
要删除一个包含文件和子目录的非空目录,可以使用`Files.delete()`方法: ```java import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; Path path = Paths.get("path/to/...
但是,这个方法不能删除非空目录,因此,我们需要递归地删除目录下的所有文件和子目录。 ```java import java.io.File; public class FileDemo_05 { public static void main(String[] args) { String dirPath =...
这个方法会尝试删除指定的文件,并返回一个布尔值,表示操作是否成功。例如: ```java import java.io.File; public class FileDelete { public static void main(String[] args) { File file = new File("path_...
3. **删除非空目录**:如果试图删除一个非空目录,`delete()`方法会返回`false`,并且不会对目录进行任何改变。这是因为在Java中,除非目录为空,否则无法直接删除一个目录。 #### 四、示例代码分析 下面是一个简单...
在Java编程中,有时我们需要处理文件系统操作,比如删除特定目录下的空文件夹。这个任务涉及到文件和目录的遍历以及目录的删除操作。下面我们将详细探讨如何实现这个功能。 首先,我们需要创建一个类,例如`...
但需要注意的是,如果目标是一个非空目录,则`delete()`方法可能不会立即成功,因为默认情况下,它不能删除包含子文件或子目录的目录。因此,在实际应用中,我们通常需要先递归地删除目录下的所有子文件和子目录,再...
- `File.delete()`: 这是`File`类中的一个方法,用于删除指定的文件或目录。如果删除的是一个空目录,此方法将成功;但如果目录非空,该方法将失败,除非递归删除所有子文件和子目录。 3. **递归删除实现** - ...
此方法会在指定位置创建一个新的空文件。 ```java public void createFile(String fileName) { try { File myFileName = new File(fileName); if (!myFileName.exists()) { // 如果文件不存在,则创建新文件 ...
若要删除非空目录,需要递归遍历目录,删除其中的所有文件和子目录,然后再删除该目录。 在实现这样一个模拟DOS的小程序时,通常会设计一个解析命令的逻辑,处理用户的输入,根据输入的命令调用相应的文件和目录...
- 使用`delete()`方法删除文件或目录时,如果目标是一个非空目录,需要先删除其中的所有文件和子目录。 - 使用`exists()`、`isFile()`、`isDirectory()`等方法检查文件或目录的存在状态,避免在操作不存在的文件时...
但需要注意的是,如果文件被其他程序打开或者文件是一个非空目录,`delete()`方法可能会失败。 下面是一个简单的Java代码示例,展示了如何删除一个文件: ```java import java.io.File; public class ...
这个方法会尝试删除指定的文件或空目录。如果目录非空,`delete()`通常会失败,所以我们之前先递归地删除了所有子元素。完整的方法可能如下所示: ```java public static void deleteDirectory(File dir) { if ...
如果要删除非空目录,需先递归删除其中的文件和子目录。 6. **文件属性获取**: 可以获取文件的各种属性,如大小、是否存在、是否为目录等。例如,检查文件是否存在: ```java if (file.exists()) { System.out...
当需要删除非空目录时,需要编写递归函数,先删除目录下的所有文件和子目录,然后删除目录本身。递归的过程通常从目录的底部(文件)开始,向上(到根目录)处理。 4. **获取文件列表**: 可以使用File类的list()...
本文将详细介绍如何使用Java删除单个文件、目录以及目录下的所有文件。关键在于理解`File`类提供的`delete()`方法及其使用方式。 首先,`File.delete()`方法是Java中用于删除文件或空目录的基本工具。它返回一个...
- 对于非空目录,需要先递归地删除其中的所有文件和子目录,然后再删除该目录本身。 #### 三、代码解析与实现 ##### 3.1 创建删除文件工具类(DeleteUtil) 本示例中的DeleteUtil类封装了文件删除的功能,主要...
Java删除不为空的目录,在图形化系统如Windows 和大部分的Linux 中删除一个目录是很容易的事,但是事实上并非如此,我们感到方便是因为操作系统帮我们完成了底层的删除工作,真正的删除工作是比较繁琐的。...
如果目录存在且非空,这两个方法会返回文件名或`File`对象。我们遍历这些结果并打印文件名。 值得注意的是,`listFiles()`方法可以进一步过滤文件类型。例如,如果我们只想列出所有的`.txt`文件,可以传入一个`...
同样,要删除非空目录,可以结合`walkFileTree()`方法。 ```java import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio....
在Java编程中,删除文件或文件夹是一项常见的操作。这里我们将深入探讨如何使用Java的`java.io.File`类来实现这一功能,特别是不使用递归而采用循环的方式。首先,让我们了解一下`File`类的基本概念。 `java.io....