package com.jinbu.sourceFile;
import java.io.File;
import java.util.ArrayList;
public class TxtSourceFile{
private String SUFFIX = ".txt";// 文件后缀名称
private ArrayList<String> filelist;
private int fileIndex = 0;
private boolean hasDir;//是否允许遍历子目录
public TxtSourceFile(String filePath,boolean hasDir){
this.hasDir = hasDir;
filelist = new ArrayList<String>();
this.refreshFileList(filePath);
}
/**
* 得到文件列表
* @param filePath
*/
private void refreshFileList(String filePath) {
File dir = new File(filePath);
File[] files = dir.listFiles();
if (files == null && dir != null){
//不是目录
filelist.add(dir.getAbsolutePath());
}else{
//是目录
for (int i = 0; i < files.length; i++) {
//判断是否是子目录
if (files[i].isDirectory() && hasDir) {
refreshFileList(files[i].getAbsolutePath());
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase();
if(strFileName.endsWith(SUFFIX)){
filelist.add(strFileName);
}
}
}
}
}
/**
* 是否有下一个文件
* @return File
*/
public boolean hasNext(){
if(fileIndex >= filelist.size() || filelist.get(fileIndex) == null){
return false;
}else{
return true;
}
}
/**
* 得到下一个文件
* @return File
*/
public File next(){
File file = new File((String) filelist.get(fileIndex));
fileIndex = fileIndex + 1;
return file;
}
/**
* 文件数量
* @return
*/
public int fileCount(){
int fileCount = 0;
fileCount = filelist.size();
return fileCount;
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
TxtSourceFile f = new TxtSourceFile("c:\\test",true);
for (int i = 0; i <f.filelist.size(); i++) {
System.out.println(f.filelist.get(i));
}
}
}
分享到:
相关推荐
在IT行业中,对文件系统进行操作是常见的任务之一,其中包括遍历目录、修改文件名称以及按照特定属性(如创建时间)排序。这个场景涉及到的知识点主要包括文件系统接口、文件属性获取、文件重命名以及文件遍历算法。...
5. **遍历目录**:使用递归或循环结构,通过`CWD`命令进入子目录,并使用`LIST`命令获取子目录的文件列表。对于每个返回的文件或目录,可以根据需要进行处理,如打印、下载等。 6. **关闭FTP连接**:遍历完成后,...
在C++编程中,遍历目录并打印文件及其后缀是一项常见的任务,特别是在处理文件系统操作时。在Visual Studio 2013环境下,我们可以利用C++标准库中的`<filesystem>`库(在C++17中引入)或旧版的`<dirent.h>`库来实现...
在PHP编程中,遍历目录和文件列表是常见的任务,特别是在处理文件系统操作、文件上传、备份或文件管理系统的开发中。本篇文章将详细介绍如何利用PHP实现这一功能,并结合提供的类来深入理解其实现原理。 首先,让...
通常,这些文件可能是实现文件系统操作的自定义类,可能包含了遍历目录的方法或者其他相关的工具函数。但是,由于没有具体内容,我们只能猜测它们的功能。如果要了解更多信息,需要查看这些文件的实际代码。 总结来...
在易语言编程中,"非子程序嵌套实现遍历目录"是一种常见的文件操作技术,主要用于搜索指定目录下的所有文件或子目录。易语言作为一款中国本土开发的、以中文编程为特色的编程语言,它的语法简洁明了,适合初学者入门...
`Dir.class`和`Dir.java`是这次操作的核心文件,其中`Dir.java`包含了遍历目录的代码,而`Dir.class`是编译后的字节码文件,可以在命令行环境中直接运行。 首先,让我们了解`java.io.File`类。这是Java标准库中的一...
在Windows系统中,遍历根目录文件以及搜索特定文件是一项常见的任务,这通常涉及到文件系统的操作和编程。本文将深入探讨使用Visual C++(VC)进行这类操作的技术细节。 首先,我们要了解Windows API中的文件系统...
我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的路径,并探讨一些高级用法。 #### 一、基础知识介绍 1. **`java.io.File` 类**: 这个类是Java中用于处理文件系统的核心类之一。它可以用来创建、...
1.遍历当前及其子目录中的所有文件,文件放到http/down的目录下无论几级均可。 2.下载的代码fileDownProcess.php文件中除了echo $file_data;其他不能有echo。这点很重要,否则下载下来的文件无法使用。 3.不支持中文...
接着,我们遍历目录中的所有文件,为每个文件创建一个XML元素,并设置其名称和完整路径。最后,我们对每个子目录进行递归调用,将它们添加到当前目录的XML元素下。 为了初始化XML文档并调用这个方法,我们需要以下...
遍历指定目录下文件并进行删除是IT行业中的一项基础技能,适用于多种场景,如清理临时文件、管理存储空间等。通过理解并掌握相关代码逻辑,可以更高效地处理文件系统任务,同时确保操作的安全性和准确性。在实践中,...
在JavaScript中,遍历文件夹下的所有文件与目录是一项常见的任务,尤其是在需要处理本地文件系统时。本文将详细介绍如何使用`Scripting.FileSystemObject`对象来实现这一功能,并对提供的示例代码进行深入解析。 ##...
在实际应用中,遍历目录还有许多其他可能的需求,比如过滤特定类型的文件、统计文件数量、检查权限等。这些都可以通过增加条件判断或者使用额外的系统调用来实现。 总的来说,遍历指定目录下的所有文件是C语言编程...
C#遍历指定文件夹中的所有文件是指使用C#语言编写程序来遍历指定文件夹中的所有文件和子目录。下面 将详细介绍如何使用C#来实现这一功能。 首先,需要使用DirectoryInfo类来表示文件夹。DirectoryInfo类提供了许多...
`<filesystem>`库提供了现代C++中处理文件系统操作的API,而`<dirent.h>`是用于遍历目录的老式方法。 1. **文件遍历** 使用`std::filesystem::directory_iterator`(C++17及以上)或`DIR*`和`struct dirent`(旧版...
首先,我们需要了解MFC中的CFileFind类,它是用于文件和目录查找的主要类。通过创建CFileFind对象,我们可以开始搜索指定路径下的文件和目录。下面是一个简单的步骤来实现这个功能: 1. **初始化CFileFind对象**:...
递归遍历的过程是指从某个文件夹或文件开始,依次遍历其子文件夹和文件,并将其存入 TreeView 中。 在本文的示例代码中,我们使用了两个函数:relateTreeView 和 TraversingCatalog。relateTreeView 函数用于将...
2. **使用`readdir()`遍历目录** `readdir()`函数用于读取目录流中的下一个条目,返回一个`struct dirent *`类型的指针,包含了条目的信息。例如: ```c struct dirent *dp; while ((dp = readdir(dir)) != NULL...