真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java怎么遍歷目錄下的所有文件

在java中遍歷一個(gè)文件夾里邊的所有文件,可以有兩種方式:

一、遞歸遍歷

創(chuàng)新互聯(lián)是一家專業(yè)提供曲陽企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為曲陽眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

通常也是開發(fā)者第一時(shí)間能想到的方法。

遞歸遍歷的優(yōu)點(diǎn)是:

實(shí)現(xiàn)起來相對簡單,代碼量相對較少,執(zhí)行效率較高。

缺點(diǎn)是:

比較吃內(nèi)存,對硬件要求較高。

具體算法如下:

// 遞歸遍歷
 private void getDirectory(File file) {
  File flist[] = file.listFiles();
  if (flist == null || flist.length == 0) {
      return 0;
  }
  for (File f : flist) {
      if (f.isDirectory()) {
          //這里將列出所有的文件夾
          System.out.println("Dir==>" + f.getAbsolutePath()); 
          getDirectory(f);
      } else {
         //這里將列出所有的文件
          System.out.println("file==>" + f.getAbsolutePath());
      }
  }
}

二、非遞歸遍歷

具體思路:

遍歷一個(gè)文件夾的時(shí)候,如果是文件夾,就添加到linkedlist里去,如果是文件則列出。這樣該目錄的文件和文件夾就遍歷完畢了,文件夾全部被保存到linkedlist里,所以剩下的就是遍歷linkedlist里邊的文件夾的文件,遍歷方式同上邊的操作一致。

如果是文件夾就添加到linkedlist里邊,當(dāng)然每次從列表取出一個(gè)文件夾之后需要從列表中刪除該文件夾,這里采用linkedlist.removeFirst()來讀取,這樣是每次讀取列表的第一個(gè)元素并將其從列表剔除。這樣只要遍歷到linkedlist的狀態(tài)是isEmty的時(shí)候就說明遍歷完畢了。

具體算法如下:

/**
	 * 非遞歸遍歷
	 * @param file
	 * @return
	 */
	public static LinkedList GetDirectory(String path) {
		File file = new File(path);
		LinkedList Dirlist = new LinkedList(); // 保存待遍歷文件夾的列表
		LinkedList fileList = new LinkedList();
		GetOneDir(file, Dirlist, fileList);// 調(diào)用遍歷文件夾根目錄文件的方法
		File tmp;
		while (!Dirlist.isEmpty()) {
			tmp = (File) Dirlist.removeFirst();
			// 從文件夾列表中刪除第一個(gè)文件夾,并返回該文件夾賦給tmp變量
			// 遍歷這個(gè)文件夾下的所有文件,并把
			GetOneDir(tmp, Dirlist, fileList);
 
		}
		return fileList;
	}
 
	// 遍歷指定文件夾根目錄下的文件
	private static void GetOneDir(File file, LinkedList Dirlist,
			LinkedList fileList) {
		// 每個(gè)文件夾遍歷都會(huì)調(diào)用該方法
		File[] files = file.listFiles();
 
		if (files == null || files.length == 0) {
			return;
		}
		for (File f : files) {
			if (f.isDirectory()) {
				Dirlist.add(f);
			} else {
				// 這里列出當(dāng)前文件夾根目錄下的所有文件,并添加到fileList列表中
				fileList.add(f);
				// System.out.println("file==>" + f);
 
			}
		}
	}

以上就是java實(shí)現(xiàn)遍歷某個(gè)目錄(包括子目錄)下的所有文件的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


網(wǎng)站題目:java怎么遍歷目錄下的所有文件
網(wǎng)頁地址:http://weahome.cn/article/jeceed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部