`

遍历目录中的文件,得到文件名称

    博客分类:
  • J2SE
阅读更多
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行业中,对文件系统进行操作是常见的任务之一,其中包括遍历目录、修改文件名称以及按照特定属性(如创建时间)排序。这个场景涉及到的知识点主要包括文件系统接口、文件属性获取、文件重命名以及文件遍历算法。...

    VC++ 遍历FTP文件目录

    5. **遍历目录**:使用递归或循环结构,通过`CWD`命令进入子目录,并使用`LIST`命令获取子目录的文件列表。对于每个返回的文件或目录,可以根据需要进行处理,如打印、下载等。 6. **关闭FTP连接**:遍历完成后,...

    C++ 遍历目录文件及打印文件和其后缀

    在C++编程中,遍历目录并打印文件及其后缀是一项常见的任务,特别是在处理文件系统操作时。在Visual Studio 2013环境下,我们可以利用C++标准库中的`&lt;filesystem&gt;`库(在C++17中引入)或旧版的`&lt;dirent.h&gt;`库来实现...

    php遍历目录和文件列表的类

    在PHP编程中,遍历目录和文件列表是常见的任务,特别是在处理文件系统操作、文件上传、备份或文件管理系统的开发中。本篇文章将详细介绍如何利用PHP实现这一功能,并结合提供的类来深入理解其实现原理。 首先,让...

    Java 遍历文件夹内文件

    通常,这些文件可能是实现文件系统操作的自定义类,可能包含了遍历目录的方法或者其他相关的工具函数。但是,由于没有具体内容,我们只能猜测它们的功能。如果要了解更多信息,需要查看这些文件的实际代码。 总结来...

    易语言非子程序嵌套实现遍历目录源码

    在易语言编程中,"非子程序嵌套实现遍历目录"是一种常见的文件操作技术,主要用于搜索指定目录下的所有文件或子目录。易语言作为一款中国本土开发的、以中文编程为特色的编程语言,它的语法简洁明了,适合初学者入门...

    java遍历文件目录生成树结构txt文件

    `Dir.class`和`Dir.java`是这次操作的核心文件,其中`Dir.java`包含了遍历目录的代码,而`Dir.class`是编译后的字节码文件,可以在命令行环境中直接运行。 首先,让我们了解`java.io.File`类。这是Java标准库中的一...

    一个遍历根目录文件以及搜索文件的VC代码

    在Windows系统中,遍历根目录文件以及搜索特定文件是一项常见的任务,这通常涉及到文件系统的操作和编程。本文将深入探讨使用Visual C++(VC)进行这类操作的技术细节。 首先,我们要了解Windows API中的文件系统...

    java中遍历某个目录下的所有文件及文件夹中的文件

    我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的路径,并探讨一些高级用法。 #### 一、基础知识介绍 1. **`java.io.File` 类**: 这个类是Java中用于处理文件系统的核心类之一。它可以用来创建、...

    PHP遍历目录及子目录所有文件并下载

    1.遍历当前及其子目录中的所有文件,文件放到http/down的目录下无论几级均可。 2.下载的代码fileDownProcess.php文件中除了echo $file_data;其他不能有echo。这点很重要,否则下载下来的文件无法使用。 3.不支持中文...

    C# 递归遍历多层目录并将目录信息写入XML

    接着,我们遍历目录中的所有文件,为每个文件创建一个XML元素,并设置其名称和完整路径。最后,我们对每个子目录进行递归调用,将它们添加到当前目录的XML元素下。 为了初始化XML文档并调用这个方法,我们需要以下...

    删除(遍历)指定目录下文件

    遍历指定目录下文件并进行删除是IT行业中的一项基础技能,适用于多种场景,如清理临时文件、管理存储空间等。通过理解并掌握相关代码逻辑,可以更高效地处理文件系统任务,同时确保操作的安全性和准确性。在实践中,...

    Javascript如何遍历一个文件夹下的所有文件与目录

    在JavaScript中,遍历文件夹下的所有文件与目录是一项常见的任务,尤其是在需要处理本地文件系统时。本文将详细介绍如何使用`Scripting.FileSystemObject`对象来实现这一功能,并对提供的示例代码进行深入解析。 ##...

    遍历制定文件中的所有文件

    在实际应用中,遍历目录还有许多其他可能的需求,比如过滤特定类型的文件、统计文件数量、检查权限等。这些都可以通过增加条件判断或者使用额外的系统调用来实现。 总的来说,遍历指定目录下的所有文件是C语言编程...

    c#遍历指定文件夹中的所有文件

    C#遍历指定文件夹中的所有文件是指使用C#语言编写程序来遍历指定文件夹中的所有文件和子目录。下面 将详细介绍如何使用C#来实现这一功能。 首先,需要使用DirectoryInfo类来表示文件夹。DirectoryInfo类提供了许多...

    c++遍历文件夹及其子文件夹所有文件 并输出文件路径和文件内容

    `&lt;filesystem&gt;`库提供了现代C++中处理文件系统操作的API,而`&lt;dirent.h&gt;`是用于遍历目录的老式方法。 1. **文件遍历** 使用`std::filesystem::directory_iterator`(C++17及以上)或`DIR*`和`struct dirent`(旧版...

    [ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView

    递归遍历的过程是指从某个文件夹或文件开始,依次遍历其子文件夹和文件,并将其存入 TreeView 中。 在本文的示例代码中,我们使用了两个函数:relateTreeView 和 TraversingCatalog。relateTreeView 函数用于将...

    C语言遍历文件下指定后缀文件(包括子文件夹)

    2. **使用`readdir()`遍历目录** `readdir()`函数用于读取目录流中的下一个条目,返回一个`struct dirent *`类型的指针,包含了条目的信息。例如: ```c struct dirent *dp; while ((dp = readdir(dir)) != NULL...

    遍历SD卡文件

    这段代码会打印出SD卡上每个文件和目录的完整路径、名称、是否为目录以及是否为文件。如果遇到目录,还会递归地遍历其子目录。 需要注意的是,由于Android的存储访问框架,从Android 10(API级别29)开始,直接访问...

Global site tag (gtag.js) - Google Analytics