1. 程式人生 > >Java之遞迴展示檔案目錄結構

Java之遞迴展示檔案目錄結構

通過遞迴函式,展示某個檔案下目錄結構

public class DirectorList {
	private static Scanner sc;

	public static void main(String[] args) {
		String route = getRoute();
		File file = new File(normRoute(route));
		System.out.println(file.getName());
		showFile(file, 1);
	}
	
	/*
	 * 利用遞迴遍歷所有子目錄,levels記錄資料夾的層數(控制空格長度,模擬分層效果 )
	 */
	public static void showFile(File files,int levels){
		//獲取所有的檔案列表
		File[] arrFiles = files.listFiles();
		String str = "";
		//每向下延伸一層,檔案前增加一層
		for (int i = 0; i < levels; i++) {
			str += "    ";
		}
		//增強for遍歷檔案陣列
		for (File childFile : arrFiles) {
			System.out.println(str + childFile.getName());
			//如果file是目錄,遞迴呼叫
			if(childFile.isDirectory())
				showFile(childFile, levels + 1);	
		}
	}
	
	//獲取使用者輸入檔案路徑
	public static String getRoute(){
		sc = new Scanner(System.in);
		System.out.println("請輸入檔案的絕對路徑:");
		String route = sc.next();
		return route;
	}
	
	//對使用者輸入的檔案路徑進行分割重新組裝
	public static String normRoute(String str){
		//定義分割符\
		String strSplit = "\\\\";
		String normalSplit = "";
		String[] arrRoute = str.split(strSplit);
		for (String sonRoute : arrRoute) {
			normalSplit  = normalSplit + sonRoute + "\\\\";
		}
		return normalSplit;
	}
}

console:
請輸入檔案的絕對路徑:
D:\foxmail\Global
Global
    7_1.ver
    Address
        3.0
            1
                AddrFolderTreeStg.hea
                AddrFolderTreeStg.htb
                AddrFolderTreeStg.rec0
                AddrNoteIdToEmails
                AddrNoteIdToMainEmailId
                Indexes
                    hitCount.ind
            AddressOption
        Images
            contact.png
    alarm

相關推薦

Java展示檔案目錄結構

通過遞迴函式,展示某個檔案下目錄結構public class DirectorList { private static Scanner sc; public static void main(String[] args) { String route = getR

Java 歸遍歷目錄

public ive exists director pos string absolut info desc Java 之遞歸遍歷目錄 一、內容   輸出指定目錄(文件夾)下的所有文件(包括目錄)的絕對路徑 二、源代碼:RecursiveListDirectory.jav

angularjs 展示樹狀結構

<script id="recursion" type="text/ng-template"> <li ng-repeat="item in cate"> <a href="{{item.cateId}}">{{item.cateName

Linux高階程式設計基礎——檔案系統程式設計遍歷/home目錄

檔案系統程式設計之遞迴遍歷/home目錄 /編寫程式完成以下功能: 1.遞迴遍歷/home目錄,打印出所有檔案和子目錄名稱及節點號。 2.判斷檔案型別,如果是子目錄,繼續進行遞迴遍歷,直到遍歷完所有子目錄為止。/ #include <stdio.h> #include &

使用Java語言刪除目錄下面產生的臨時檔案

背景:專案copy的過程中,在專案的目錄資料夾下面都產生了一個固定的檔案,很是討厭。手動刪除的話比較費力,所以寫了一個簡單的Java程式去刪除: public static void main(String[] args) { File dir = new File("/yourOwn

JAVA通過遍歷FTP中的檔案以樹形結構顯示(JTree)

1、下載相應的jar包      commons-net-3.6.jar 2、具體程式碼如下 package org.ftp.conntion; import java.io.File; import javax.swing.JFrame; import javax

java位元組流和字元流操作檔案,指定編碼寫入和讀取,建立上層目錄

java的IO流分兩種流 位元組流 InputStream OutputStream 字元流 Reader Writer 他們都是抽象類 具體實現 位元組流 FileInputStream FileOutputStream 字元流 FileReader FileWriter

MySql、Oracle(通用方法)查詢生成檔案目錄樹(JAVA實現 過程中不訪問資料庫,之前只訪問兩次 進行前資料準備)

查詢檔案樹 實體類 public class TradeInfoFile { ​ // 檔案編碼(子) private String fileCode; // 所屬檔案編碼(父) private String belongFileCode; // 交易

java資料結構與演算法思維(讓我們更通俗地理解)

關聯文章:   本篇是資料結構與演算法的第6篇,從這篇種我們將深入瞭解遞迴演算法,這可能是一篇分水嶺的博文,因為只有在理解遞迴的基礎上,我們才可能更輕鬆地學習樹的資料結構,實際上資料結構系列書籍中遞歸併沒有講得特別通俗易懂,博主目前看過的書籍中分析遞迴

資料結構與演算法

1、背景 現在很多App都有這個功能。使用者A來推薦使用者B來註冊,使用者B又推薦了使用者C來註冊,我們可以說,使用者C的“最終推薦人”為使用者A,使用者B的"最終推薦按人”也為使用者A,而使用者A沒有"最終推薦人"。 一般來說,我們會通過資料庫來記錄這種推薦關係。在資料庫表中,我們可以

Python3&資料結構

#遞迴 def fact(x): if x == 1: return 1 else: return x * fact(x - 1) #tail recursion(尾遞迴) def tail_recusion(x,total=1): if

Java拼接json樹形結構

最近在專案開發過程中遇到一個問題,前臺需要用到echarts元件中的旭日圖來顯示層級關係,這就需要我將後臺Sql查詢出來的json陣列拼接成多級巢狀的樹形結構返回前臺 ,類似於 而我從資料庫中查出來的資料時這樣的: {"prog_level_id_1":"5","

java使用,複製資料夾下的所有子檔案

1.先判斷要複製的檔案是資料夾還是檔案,如果是檔案,就進行復制,如果是資料夾,就進行下一層的迴圈,運用遞迴的特性,將所有的檔案進行復制。 2.存在問題,相對來說,使用字元流來進行復制有缺陷,在複製的過程中,對於複製的圖片啊,ppt什麼的檔案會有損害,可能不能開

Java獲取zTree標準結構資料優化

資料結構: var nodes = [ {name: "父節點1", children: [ {name: "子節點1"}, {name: "子節點2"} ]} ]; // 獲取標準JSON資料 public st

Java讀取檔案路徑下所有檔名稱並儲存為Txt文件

本文用遞迴的方法實現讀取一個路徑下面的所有檔案並將檔名稱儲存到Txt檔案中,親測可用。 遞迴讀取檔案路徑下的所有檔案: /** * 遞迴讀取檔案路徑下的所有檔案 * * @param path * @param fileNameList

C++基於的全目錄檔案查詢

呼叫的資料結構和函式: struct _finddata_t結構體 long _findfirst( char *filespec, struct _finddata_t *fileinfo ) in

【資料結構與演算法】的基本介紹---第六篇

一、遞迴的基本概念 1、定義 遞迴:指的是一個過程,函式直接或者間接的呼叫自己,此時則發生了遞迴。 遞迴的兩個要素:遞推公式和遞迴邊界 可以看到遞迴的定義非常的簡潔,但是理解起來就沒有這麼容易了。不知道大家是否和我一樣,在遇到遞迴問題的時候,總是試圖去一步一步的分

java 查詢樹形選單結構(個人認為是最簡單的)

/** * 獲取無限級的類別資源 */ @Override public List<Object> findTypeTree() throws BusinessException

回爐篇10—資料結構(9)

前言: 記得小時候經常講的一個故事:從前有座山,山上有座廟,廟裡有一個老和尚和一個小和尚,一天,老和尚給小和尚講了一個故事,故事內容是“從前有座山,山上有座廟,廟裡有一個老和尚和一個小和尚,一天,老和尚給小和尚講了一個故事,故事內容…” 什麼是遞迴,上面的小故事

java使用的方法實現檔案獲取以及操作

private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目錄,則遞迴列印該目錄下的檔案 func(f);