`
johnston678
  • 浏览: 31063 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

文件目录打印程序

阅读更多
实现了一个文件目录打印功能。
/**
 * 返回当前目录下的所有文件(包括子目录),对于文件,列出文件的长度
 * 对于子目录继续显示,直到最后显示文件为止
 */
package com.java.basic.exercise.io;

import java.io.File;

/**
 * @author johnston
 * 
 * @version 2009-06-23
 */
public class FileAndDirectoryList {
	int count = 0; //记录分隔符的数目,用来区别目录的等级
	
	/**
	 * 根据文件的绝对路径获得一个文件对象
	 * @param path
	 * @return
	 */
	public File inputPath(String path) {
		File file = new File (path);
		return file;
	}
	
	/**
	 * 根据目录的文件对象获得当前目录中的文件和子目录列表
	 * @param directoryPath
	 * @return
	 */
	public File[] subFileList(File directoryPath) {
		File[] subFileList = directoryPath.listFiles();
		return subFileList;
	}
	
	/**
	 * 判断文件对象file是否是文件
	 * @param file
	 * @return
	 */
	public boolean isFile(File file) {
		return file.isFile();
	}
	
	/**
	 * 判断文件对象file是否是目录
	 * @param file
	 * @return
	 */
	public boolean isDirectory(File file) {
		return file.isDirectory();
	}
	
	/**
	 * 打印文件名,和文件大小
	 * @param file
	 */
	public void printFile(File file) {		
		//System.out.println("FileName:" + file.getAbsolutePath() + "\t FileSize:" + file.length());
		System.out.println("FileName:" + file.getName() + "\t FileSize:" + file.length());
	}
	/**
	 * 打印文件目录
	 * @param file
	 */
	public void printDirectory(File file) {
		System.out.println("Directory:" + file.getAbsolutePath());
	}
	
	/**
	 * 打印count个分隔符
	 * @param count
	 */
	public void printSeparator(int count) {
		for (int i=0; i<count; i++) {
			System.out.print("*");
		}
	}
	/**
	 * 打印path路径下的目录和文件
	 * @param path
	 */
	public void printFileAndDirectory(String path){
		int subCount = count; //用来记录子文件的分隔符的数量,保证下次返回到本级目录时,打印分隔数
		File file = inputPath(path);  //获得path路径的文件对象		
		//如果是目录,则进行列表处理,再打印子文件和子目录
		if (isDirectory(file)) {			
			File[] fileList = subFileList(file);
			for (int i=0; i<fileList.length; i++) {				
				File subFile = fileList[i];
				if (isFile(subFile)) {					
					printSeparator(count);
					printFile(subFile);
				}
				if (isDirectory(subFile)) {						
					printSeparator(count);
					printDirectory(subFile);
					count += 4;
					//System.out.println("directory subfile:" + subFile.getAbsolutePath());
					printFileAndDirectory(subFile.getAbsolutePath());
				}
				count = subCount;
			}
		}
		//如果是文件直接打印出来
		if (isFile(file)) {
			printSeparator(count);
			printFile(file);
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FileAndDirectoryList fileAndDirectoryList = new FileAndDirectoryList();
		fileAndDirectoryList.printFileAndDirectory("e:\\a");
	}

}


程序运行结果如下:

Directory:e:\a\b
****FileName:e.txt  FileSize:0
Directory:e:\a\c
****Directory:e:\a\c\t
********FileName:f.txt  FileSize:0
********Directory:e:\a\c\t\p
************FileName:pp.txt  FileSize:0
****FileName:oo.txt  FileSize:0
FileName:d.txt  FileSize:0
分享到:
评论

相关推荐

    好用的文件目录打印工具

    在提供的文件列表中,`FileTreePrinter.exe` 可能就是这个文件目录打印工具的执行程序。它可能是一个绿色软件,意味着它无需安装即可运行,不写入注册表,不会对系统造成过多影响。`G)绿色软件站.txt` 可能是一个...

    Plt文件打印程序

    Plt文件打印程序

    Winform网络下载文件发送打印机打印程序源码

    【Winform网络下载文件发送打印机打印程序源码】是一个基于Windows Forms(Winform)的应用程序,主要用于实现从网络下载文件并直接发送到打印机进行打印的功能。这个程序的核心是利用C#编程语言构建的,它结合了...

    cad文件批量打印程序

    CAD(Computer-Aided Design)文件批量打印程序是一种高效的工作工具,尤其对于工程设计人员和建筑师而言,它能够显著提升工作效率。这个程序允许用户一次性处理多个CAD文件,避免了逐个手动设置和打印的繁琐过程。...

    文件目录遍历程序

    2. **遍历函数**:这是一个递归函数,接收当前目录路径,使用`FindFirstFile`开始遍历,对于每一个找到的文件或子目录,它会执行一些操作(如打印文件名或执行特定逻辑),然后对子目录调用自身,除非是`.`或`..`这...

    C#写的一个文本文件打印程序

    这个"C#写的一个文本文件打印程序"提供了这样一个解决方案,它允许用户打印纯文本文件,确保内容完整并支持换页功能。C#是一种面向对象的编程语言,由微软开发,广泛应用于Windows平台的软件开发,包括桌面应用、Web...

    假脱机打印程序与虚拟设备

    这种系统的核心是服务器端的假脱机打印程序,它模拟了一个快速的打印机,但实际上,文件并不会直接输出到打印机,而是先被存储到磁盘上的虚拟设备(即打印请求队列)中。这样做的好处是可以提高用户响应时间,因为...

    一个很好的万能打印程序

    【标题】:“一个很好的万能打印程序” 在IT领域,"万能打印程序"通常指的是能够处理各种格式文档并具备广泛兼容性的打印解决方案。这样的程序允许用户从不同的应用程序打印到同一输出设备,如打印机,而无需担心...

    frf文件-打印模板程序调用

    frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-打印模板程序调用frf文件-...

    cad批量打印小程序

    7. **安全与兼容性**:确保所使用的CAD批量打印程序是安全可靠的,最好来自可信赖的开发者。同时,检查其是否兼容当前的CAD文件版本和操作系统。 总之,"CAD批量打印小程序"是一款提高工作效率的利器,它通过自动化...

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

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

    Python后台静默打印PDF文件附属执行程序

    本资源提供的"Python后台静默打印PDF文件附属执行程序"正是针对这一需求的解决方案,包含两个关键组件:Ghostscript和Gsprint。 **Ghostscript** 是一个开源的软件,它能够解析和处理PostScript以及PDF文件。它的...

    通用打印程序源代码

    通过分析这些文件,我们可以了解到这个通用打印程序使用了FoxPro作为开发语言,并且具有良好的模块化设计,方便扩展和维护。对于想要学习或改进票据打印程序的开发者来说,这个源代码是一个宝贵的参考资料,可以深入...

    【文印和办公助手】文件批量打印程序

    批量打印程序是文印、出版、文本制作的强大助手。 1、支持多个文件(包括多种格式的混合文件)批量打印 2、支持3种文件格式:word、excel、pdf 3、可实体打印(打印输出为纸张),也可虚拟打印(打印输出为pdf、图片...

    非常不错的web打印程序(附示例程序)

    Web打印程序是一种允许用户在网页上直接进行打印操作的技术,它可以极大地提升用户体验,尤其是在需要大量打印文档或报表的场景中。本资源包含了一个优秀的Web打印程序,并提供了丰富的示例程序,便于开发者理解和...

    基于.net core + vue 的远程文件自动打印程序

    1. appsetting.json 中可以配置本地调用哪个打印机,通过打印机...5. 使用时先yarn run build ,然后发布.net core 后端,然后将生成的dist文件夹中的前端页面拷贝到发布的.net core 后端程序目录下的wwwroot 目录下。

    2023全新UI最新自助打印系统云打印小程序源码

    "2023全新UI最新自助打印系统云打印小程序源码" 这个标题揭示了几个关键信息。首先,这是2023年的最新版本,意味着它可能包含了最新的技术改进和更新。其次,UI(User Interface)指的是用户界面,这通常涉及到软件...

    CAD 批量打印程序

    CAD(Computer-Aided Design)批量...在解压后,用户可以将这些文件导入批量打印程序,按照上述流程进行批量打印操作。在实际操作时,请确保备份好原始文件,并根据具体软件的使用指南进行操作,以免数据丢失或误操作。

    3D打印二进制CLI切片分层文件读取显示程序

    全网搜了很久也没找到一个关于3D打印文件CLI的解析读取显示文件,所以写了个二进制CLI文件显示软件,按照由MAGICS21生成的CLI文件格式编写,下一步将把CLI文件转成转镜数据和振镜轨迹和G-GODE文件格式。附件有我QQ,...

    中国结戒指stl文件3d打印程序

    标题中的“中国结戒指stl文件3d打印程序”指的是一个3D打印项目,该项目涉及设计和制作一款具有中国传统元素的中国结样式戒指。STL(Standard Tessellation Language)文件是一种标准格式,常用于3D打印领域,它包含...

Global site tag (gtag.js) - Google Analytics