/**
* 获取指定目录下的所有的java文件的绝对路径,包含子目录中的。
* 要求存放到集合中(注意,过滤器对象只能有一个。)
*/
public static void main(String[] args) {
/*
* 思路;
* 1,既然包含子目录:递归。
* 2,递归出来的所有的文件和文件夹,需要加上过滤器,过滤出指定的文件。
* 3,将满足过滤器条件的文件存储到集合中。
* 注意:过滤器不要定义递归代码中,这样容器导致过滤器创建过多,内存消耗。
*/
File srcDir = new File("E:\\JavaSE_Code");
long start = System.currentTimeMillis();
FileFilter filter = new FileFilterByDirAndSuffix(".java");
List<File> list = new ArrayList<File>();
getJavaFiles_2(srcDir, filter, list);
for (File file : list) {
System.out.println(file.getAbsolutePath());
}
long end = System.currentTimeMillis();
System.out.println("毫秒值:" + (end - start));
}
// 将过滤器定义在srcDir对象的listFiles方法中,只获取子目录和指定的文件。
public static void getJavaFiles_3(File srcDir, FileFilter filter,
List<File> list) {
File[] files = srcDir.listFiles(filter);
for (File file : files) {
if (file.isDirectory()) {
getJavaFiles_3(file, filter, list);
} else {
list.add(file);
}
}
}
/*
* 使用了FileFilter的过滤器。
*/
public static void getJavaFiles_2(File srcDir, FileFilter filter,
List<File> list) {
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getJavaFiles_2(file, filter, list);
} else {
// 满足过滤器,将file对象添加到集合中。
if (filter.accept(file)) {
list.add(file);
}
// System.out.println(file.getAbsolutePath());
}
}
}
/*
* 使用的是FilenameFilter过滤器。
*/
public static void getJavaFiles_1(File srcDir, FilenameFilter filter,
List<File> list) {
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getJavaFiles_1(file, filter, list);
} else {
// 满足过滤器,将file对象添加到集合中。
if (filter.accept(file.getParentFile(), file.getName())) {
list.add(file);
}
// System.out.println(file.getAbsolutePath());
}
}
}
分享到:
相关推荐
在Java编程中,读取项目中的文件,特别是位于`src`目录下的文件,是一个常见的需求。这涉及到对项目结构的理解和使用Java I/O流的知识。`src`目录通常包含源代码文件,而运行时,这些文件会被编译并放置到类路径...
`os.listdir()`用于获取目录中的所有文件和子目录名,`os.path.isdir()`和`os.path.isfile()`则分别用于判断路径是否为目录或文件。下面是一个简单的Python示例: ```python import os def get_files_in_path(path...
1. **`list()`方法**:当你调用`File`对象的`list()`方法时,它会返回一个字符串数组,包含指定目录中的所有文件和目录的名字(不包括子目录的文件)。这些名字并不包含路径信息,只是简单的文件或目录名。 2. **`...
`os.listdir(directory)`则可以获取指定目录下的所有文件和子目录的名称列表,这对于遍历文件夹非常有用。 在Java中,可以使用`java.io.File`类来处理路径。`File.getAbsolutePath()`返回文件的绝对路径,而`list...
例如,如果你想查找特定子目录下的XML文件,可以在创建`File`对象时传入子目录的路径。或者,如果你需要处理找到的XML文件,可以在`print()`方法中加入相应的逻辑。 总的来说,Java通过`java.io.File`类提供了丰富...
这个`FileList`类提供了一个方便的方法,可以轻松集成到任何Java项目中,以获取特定文件夹及其子目录下的所有文件名,并将这些名称保存到一个文件中。通过调用`new FileList("目录路径", "列表文件路径")`并随后调用...
1. **遍历目录**:批处理文件可以使用`FOR /R`命令来递归遍历指定路径下的所有子目录和文件。 2. **识别文件类型**:根据文件扩展名判断是否为源代码文件。这可能通过`IF`语句和文件扩展名比较来实现。 3. **计数**...
总结来说,`java.io.File`类是Java中处理文件和目录的核心工具,配合自定义的`FileUtil`类,可以方便地进行各种文件操作,包括创建、删除、读取、写入等。熟练掌握`File`类和`FileUtil`类的使用,将使你在Java开发中...
有时候,需要删除整个目录及其包含的所有子目录和文件。这可以通过递归的方式实现: ```java public static boolean deleteDirectory(File directory) { if (directory.exists()) { File[] files = directory....
本示例代码“path_test.java”旨在演示如何在Java中获取文件或目录的绝对路径。首先,让我们理解什么是文件路径以及绝对路径的概念。 **文件路径**:在计算机系统中,文件路径是标识文件或目录的唯一字符串,它指示...
获取文件属性也是Java文件操作中的重要部分,可以帮助我们更好地管理文件系统。 ```java String path = request.getRealPath("/"); File f = new File(path, "ReadData.txt"); if (f.exists()) { System.out....
在Java编程中,打印目录下的所有文件是常见的需求,尤其在进行文件操作或者需要遍历文件系统时。这篇博文的作者分享了一种方法来实现这一功能。以下是对这个主题的详细解析。 首先,我们需要理解Java中的`java.io....
通过`File`对象的`listFiles()`方法,可以获取指定目录下的所有子文件和子目录。在给定的代码示例中,首先创建了一个指向目标目录的`File`对象`fileDir`,然后调用`listFiles()`方法获取该目录下所有文件的数组`text...
`Path.GetDirectoryName(path)`返回路径中的目录部分,`Directory.GetFiles(directory)`获取指定目录下的所有文件,`DirectoryInfo`类可以用来遍历目录及其子目录。 了解了基本概念后,开发者通常会遇到以下常见...
为了实现这一功能,开发者可能还会使用`listFiles()`或`listFiles(FilenameFilter filter)`方法,这可以列出指定目录下的所有子文件或符合特定条件的文件。 在实际项目中,这些基本的文件和目录操作常用于文件管理...
- 遍历指定目录下的所有文件和子目录。 - 将每个文件的路径、名称和大小存储到向量中。 #### 2. 建立Socket连接 - 使用`Socket`类创建客户端与服务器之间的连接。 - 通过`getSocket()`方法获取连接。 #### 3. 发送...
- `listFiles()`: 返回当前目录下的所有文件和子目录的`File`对象数组,包括隐藏文件。对于文件对象,返回`null`。 - `list(FilenameFilter filter)` 和 `listFiles(FilenameFilter filter)`: 根据提供的过滤器...
1. `createNewFile()`:创建指定的文件,但不能创建目录,且路径中所有上级目录必须存在。 2. `mkdir()`:创建单级目录,如果路径是相对路径,新目录会在当前工作目录下创建。 3. `mkdirs()`:如果路径包含多级目录...
4. **文件遍历**:`File.listFiles()`方法可以获取指定目录下的所有文件和子目录。 `filedao.class`文件可能包含了`FileDao`类的字节码,它是Java编译后的结果。Java虚拟机(JVM)通过加载此类文件来执行相应的代码...