溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java編程獲取文件列表及子文件目錄的方法(非遞歸)

發(fā)布時(shí)間:2020-10-01 00:42:11 來(lái)源:腳本之家 閱讀:115 作者:herdyouth 欄目:編程語(yǔ)言

廢話不談,直接進(jìn)入正題,理解見代碼注釋。

// 非遞歸
  public List<String> scanFiles(String path) {
    List<String>filePaths = new ArrayList<String>();
    LinkedList<File> list = new LinkedList<File>();
    File dir = new File(path);
    File[] file = dir.listFiles();

    for (int i = 0; i < file.length; i++) {
      if (file[i].isDirectory()) {
        // 把第一層的目錄,全部放入鏈表
        list.add(file[i]);
      }
      filePaths.add(file[i].getAbsolutePath());
    }
    // 循環(huán)遍歷鏈表
    while (!list.isEmpty()) {
      // 把鏈表的第一個(gè)記錄刪除
      File tmp = list.removeFirst();
      // 如果刪除的目錄是一個(gè)路徑的話
      if (tmp.isDirectory()) {
        // 列出這個(gè)目錄下的文件到數(shù)組中
        file = tmp.listFiles();
        if (file == null) {// 空目錄
          continue;
        }
        // 遍歷文件數(shù)組
        for (int i = 0; i < file.length; ++i) {
          if (file[i].isDirectory()) {
            // 如果遍歷到的是目錄,則將繼續(xù)被加入鏈表
            list.add(file[i]);
          }
          filePaths.add(file[i].getAbsolutePath());
        }
      }
    }
    return filePaths;
  }

以上就是本文關(guān)于Java編程獲取文件列表及子文件目錄的方法(非遞歸)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程子類能否重寫父類的靜態(tài)方法探索、java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法等,如有不足之處,歡迎留言參考。感謝朋友們對(duì)本站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI