`

黑马程序员23-1: File深度遍历目录,取出目录/文件,删除目录/文件,递归

 
阅读更多
------- android培训 java培训、期待与您交流!-------



package cn.itcast.io.p1.file.test;

import java.io.File;

/*
 * 需求:对指定目录进行所有内容的列出(包含子目录中的内容)
 * 也可以理解为 深度遍历。
 * 
 * 
 */

public class FileTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		File dir = new File("e:\\demodir");
		
		listAll(dir,0);
	}

	public static void listAll(File dir,int level) {
		
	
		System.out.println(getSpace(level)+dir.getName());
		//获取指定目录下当前的所有文件夹或者文件对象
		//
		level++;
		//取出当前所有的文件及文件夹,放到文件数组中,仅仅是当期那,不做深度遍历
		File[] files = dir.listFiles();
//		for(File file : files){
//			System.out.println("*****files****:" + file);
//		}
		
		for(int x=0; x<files.length; x++){
			//如果当前有目录存在,递归进行查询列表功能,按顺序对已有目录进行深度遍历
			if(files[x].isDirectory()){
				listAll(files[x],level);
				//递归到底后,逐层跳出,使用上一层的数据,继续往下面的语句执行
			}
			else{
				System.out.println(getSpace(level)+files[x].getName());
			}
				
		}	
	}

	private static String getSpace(int level) {
		
		StringBuilder sb = new StringBuilder();
		
		sb.append("|--");
		for(int x=0; x<level; x++){
			sb.insert(0,"|  ");
		}
		
		return sb.toString();
	}
	

}



package cn.itcast.io.p1.file.test;

import java.io.File;


/*
 * 删除一个带内容的目录。 
 * 
 * 原理:必须从最里面往外删。 
 * 需要进行深度遍历。
 * 
 * 
 * 
 */
public class RemoveDirTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		File dir  = new File("e:\\demodir");
//		dir.delete();
		removeDir(dir);
	}

	//遍历目录,删除文件,删除目录
	public static void removeDir(File dir) {
		//取出当前目录的文件及文件夹
		File[] files = dir.listFiles();
		
		for(File file : files){
			//如果文件夹存在,则继续遍历文件夹
			if(file.isDirectory()){
				removeDir(file);
			}else{
				//不存在,则删除当前文件
				//如果此路径名表示一个目录,则该目录必须为空才能删除。 
				System.out.println(file+":"+file.delete());
			}
		}
		//删除当前目录
		System.out.println(dir+":"+dir.delete());
	}
	

}



package cn.itcast.io.p1.digui;

public class DiGuiDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		
		/*
		 * 递归:
		 * 函数自身直接或者间接的调用到了自身。 
		 * 
		 * 一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关。 
		 * 这时可以用递归来解决问题。 
		 * 
		 * 
		 * 注意:
		 * 1,递归一定明确条件。否则容易栈溢出。 
		 * 2,注意一下递归的次数。 
		 * 
		 */
//		show();
//		toBin(6);
		int sum = getSum(9000);
		
		System.out.println(sum);
	}
	
	public static int getSum(int num){

		int x = 9;
		if(num==1)
			return 1;
		
		return num+getSum(num-1);
		
	}
	
	public static void toBin(int num){
		if(num>0){
			
			toBin(num/2);
			System.out.println(num%2);
			
		}
	}
	
	/*
	public static void show(){
		
		method();
		
	}
	public static void method(){
		show();
	}
	*/
	

}




------- android培训 java培训、期待与您交流!-------


详细请查看:http://edu.csdn.net/heima -------

分享到:
评论

相关推荐

    二叉树的操作--递归非递归遍历、结点个数、树深度

    遍历递归的先中後序, 非递归的先中後序, 计算出深度 结点数 /* 运行结果: ------------------------ 请先序输入二叉树(如:ab三个空格表示a为根节点,b为左子树的二叉树) ab c 先序递归遍历二叉树: a b c 先序...

    c语言 二叉树应用:创建、递归非递归遍历、计算结点、分支、交换子树

    递归先序遍历二叉树: 递归中序遍历二叉树: 递归后序遍历二叉树: 非递归先序遍历二叉树: 非递归中序遍历二叉树: 非递归后序遍历二叉树: 非递归中序遍历二叉树(算法2): 层次遍历二叉树: 递归计算单...

    npm-recursive-uglifyjs:递归遍历目录并缩小目录或其子目录中的所有JavaScript文件

    递归-uglifyjs 递归遍历目录,并丑化该目录及其子目录中包含的所有JavaScript文件。 安装 npm install -g recursive-uglifyjs 用法 recursive-uglifyjs ./a/directory/containing/js/files

    Python递归遍历目录下所有文件

    #递归遍历/root目录下所有文件 gci('/root') 方式二: #!/usr/bin/python # -*- coding: utf-8 -*- import os for fpathe,dirs,fs in os.walk('/root'): for f in fs: print(os.path.join(fpathe,f))

    数据结构二叉树遍历递归,非递归

    非递归遍历的优势在于它避免了函数调用栈的深度限制,对于非常深的树,递归可能会导致栈溢出。 在实际编程中,根据具体场景选择适当的遍历方式。例如,前序遍历常用于复制树或构建表达式树;中序遍历通常用于二分...

    get-folder-size:通过递归遍历其所有子文件夹(文件&&文件夹)来获取文件夹的大小

    获取文件夹大小通过遍历文件夹的子文件和-folder来获取文件夹的大小。 :warning: 此软件包的版本3完全重新设计了API,以使用对版本14的ES6 Promise和最低节点支持。如果需要使用旧的回调语法,或者需要支持旧版本的...

    node-file-walker:递归遍历文件目录的 Node.js 模块

    一个简单的文件/目录遍历模块 安装 npm install file-walker 回调参数 files - 当前目录中的文件/目录数组,例如['dummy', 'test.js'] dir - 目录名,例如'./test' level - 当前目录级别从0开始 示例用法 假设...

    易语言遍历目录文件

    在易语言中,遍历目录文件是一项基本的操作,常用于文件管理和数据处理等场景。本文将详细讲解如何在易语言中实现目录文件的遍历。 首先,我们需要理解“遍历目录文件”的概念。遍历目录文件,即程序会按照一定的...

    二叉树后序遍历的非递归算法

    这是数据结构中二叉树的后序遍历的非递归算法的源代码。

    hapi-plugins-dir:递归遍历目录,并准备好Hapi插件数组,以喂入Hapi的server.register(plugins,[options])函数

    hapi-plugins-dir描述递归遍历目录并准备好Hapi插件数组,以提供Hapi的函数。概要插件与文件位于同一目录中 const getHapiPlugins = require ( "hapi-plugins-dir" ) ;const plugins = getHapiPlugins ( ) ;await ...

    递归实现遍历目录下子所有目录内所有文件

    本文将深入探讨如何使用递归方法来遍历一个目录及其所有子目录内的所有文件。我们将重点关注以下几个方面: 1. **递归概念**: 递归是一种函数或过程调用自身的技术,通常在问题可以分解为相同或相似子问题时使用...

    二叉树的各种遍历

    /*选择二叉链式存储结构作为二叉树的存储结构,设计一个程序实现二叉树的基本操作(包括建立、输出、前序遍历、中序遍历、后序遍历、求树高、统计叶子总数等) 【实验内容】 必做内容 程序的菜单功能项如下: 1----...

    计算机软件-商业源码-实例75 递归法遍历磁盘目录.zip

    在计算机编程领域,遍历磁盘目录是一项常见的任务,它涉及到文件系统操作和递归算法的应用。本实例“实例75 递归法遍历磁盘目录”提供了一个使用递归技术来遍历Windows操作系统中磁盘目录的源码软件。下面我们将详细...

    linux常用命令总结

    - `rm -r dir1`:递归删除目录 `dir1` 及其所有内容。 - 注意:谨慎使用 `-f` 强制选项,可能会导致意外删除文件。 4. **`touch`** - 用途:创建空文件或更新文件的时间戳。 - 示例: - `touch newfile.txt`:...

    C递归遍历目录.txt

    本段代码主要实现了一个简单的递归函数 `searchFile` 来遍历当前目录及其所有子目录,并删除指定类型的文件(`.exe` 和 `.obj`)。 #### 三、核心代码解读 1. **头文件引入**: ```c #include #include #...

    ASP技术常遇问题解答-如何遍历目录及目录下的文件?.zip

    在ASP技术中,遍历目录和其下的文件是一项常见的任务,尤其在处理文件上传、文件管理系统或者需要批量操作文件的场景下。这篇文档"ASP技术常遇问题解答-如何遍历目录及目录下的文件?"可能详细介绍了这个问题的解决...

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

    在C#编程中,有时我们需要获取文件系统的详细信息,例如遍历多层目录,并将这些信息存储起来,以便后续处理或记录。在这种情况下,我们可以利用递归算法来遍历目录结构,然后使用XML来保存数据,因为XML是一种结构化...

    linux常用的命令集合

    - `cp -r dir1 dir2`:递归地将dir1目录及其子目录和文件复制到dir2目录中。 6. cut命令 cut命令用于按照指定分隔符分割文本,并选择文本文件中的一列或几列作为输出。 - 使用方式:cut [选项] 文件名 - 选项: -...

    遍历目录下所有的文件_遍历文件夹文件_java遍历目录下所有文件_

    在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的...综上所述,遍历Java目录下的所有文件和子目录涉及`File`类的使用,以及递归遍历的概念。在处理文件系统操作时,正确理解和应用这些概念至关重要。

    树的非递归遍历算法层次遍历与深度遍历C语言源码

    本资源提供了树的非递归遍历算法的C语言源码,包括层次遍历(BFS,Breadth-First Search)和深度遍历(DFS,Depth-First Search)。下面我们将详细探讨这两种遍历方法及其非递归实现。 **层次遍历(BFS)**: 层次...

Global site tag (gtag.js) - Google Analytics