1. 程式人生 > >如何用Java程式碼列出一個目錄下所有的檔案?

如何用Java程式碼列出一個目錄下所有的檔案?

如果只要求列出當前資料夾下的檔案,程式碼如下所示:

package chimomo.learning.java.file;

import java.io.File;

/**
 * @author Chimomo
 */
public class ListFile1 {

    public static void main(String[] args) {
        File f = new File("/Users/XXX/Downloads");
        for (File t : f.listFiles()) {
            if (t.isFile()) {
                System.out.println(t.getName());
            }
        }
    }

}
如果需要對資料夾繼續展開,程式碼如下所示:
package chimomo.learning.java.file;

import java.io.File;

/**
 * @author Chimomo
 */
public class ListFile2 {

    public static void main(String[] args) {
        listFiles(new File("/Users/XXX/Downloads"));
    }

    public static void listFiles(File f) {
        walkDir(f, 0);
    }

    private static void walkDir(File f, int level) {
        if (f.isDirectory()) {
            for (File t : f.listFiles()) {
                walkDir(t, level + 1);
            }
        } else {
            for (int i = 0; i < level - 1; i++) {
                System.out.print("\t");
            }
            System.out.println(f.getName());
        }
    }

}
在Java 7中可以使用NIO.2的API來做同樣的事情,程式碼如下所示:
package chimomo.learning.java.file;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.*;

/**
 * @author Chimomo
 */
public class ListFile3 {

    public static void main(String[] args) throws IOException {
        Path initPath = Paths.get("/Users/XXX/Downloads");
        Files.walkFileTree(initPath, new SimpleFileVisitor<Path>() {

            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println(file.getFileName().toString());
                return FileVisitResult.CONTINUE;
            }

        });
    }

}

相關推薦

如何用Java程式碼列出一個目錄所有檔案

如果只要求列出當前資料夾下的檔案,程式碼如下所示:package chimomo.learning.java.file; import java.io.File; /** * @author Ch

excel巨集:列出一個目錄所有檔案,並做也超連結

 從網上找了一些資訊,自己修改了一下 方式很直白,先把所有的目錄找了出來,然後一個個目錄來處理。 雖然與我習慣使用迭代的的方式有所差別,但也很好。 後面的函式是原始的,沒有改動,主函式自己重新寫過了。 檔案下載 '主函式 Sub ListFil

dos批處理:列出指定目錄所有檔案

@echo off echo 請輸入目錄名: set/p xxx= >nul echo 正在執行,請稍等... dir /s/b %xxx% > c:\檔名.txt echo 執行完成,獲

Linux目錄遍歷實現 -- 列出當前目錄所有檔案

遞迴遍歷目錄,列出目錄中的檔案,程式碼: #include <stdio.h> #include <stdlib.h> #include <string.h>

Python計算一個目錄所有檔案(包括子目錄中所有檔案)指定的檔案型別個數

 輸入工程名計算一個工程專案中C++,Java,Python,GO語言的檔案個數,並找出Python檔案中最大檔案的檔名 1、先讀取檔案地址,找到該資料夾 import os import os.path path = 'C:/python學習/Python作業/' +

使用java來把一個目錄所有檔案拷貝到另外一個目錄,並且重新命名

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                import java.io.File;import java.io.FileReader;import java.io.FileWriter;public c

列出一個目錄所有檔案

1、僅僅列出給定目錄下的所有檔名,而不會顯示給定資料夾裡面的資料夾裡的檔名。 import java.io.File; public class Main { public static void main(String[] args) { String s = "E

Java 列出資料夾所有檔案,符合條件的檔案複製到指定目錄

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class TestFile { public static void main(String[] a

Java遍歷一個目錄所有檔案

    Java工具中為我們提供了一個用於管理檔案系統的類,這個類就是File類,File類與其他流類不同的是,流類關心的是檔案的內容,而File類關心的是磁碟上檔案的儲存。     一,File類有

Mac如何統計一個目錄所有程式碼檔案的總行數

開啟終端,用cd命令 定位到工程所在的目錄,然後呼叫以下命名即可把每個原始碼檔案行數及總數統計出來: find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or

遞迴方法輸出目錄所有的檔名

# !/bin/bash function echo_name() { #shell會執行反引號中的內容(命令) for file in `ls $1` do if [ -d $1'/'$file ] then echo_name $1'/'$file else ech

列出指定目錄所有副檔名為.txt的檔案,及出現的問題

/*7.列出指定目錄下所有副檔名為.txt的檔案*/ /* System.out.println(file.isDirectory());當file是一個沒有後綴的檔案時,這裡會輸出false

java遞迴刪除目錄所有內容

java遞迴刪除目錄下所有內容  private static boolean deleteDir(File dir) {if (dir.isDirectory()) {        String[] children = dir.list

python3 獲取一個本地目錄所有檔案的絕對路徑

程式碼如下: import os def get_abs_paths(directory, totalPathFiles=[]):     '''     此函式旨在獲取directory目錄下,所有檔案的絕對路徑,     並放在to

Java程式碼一個判斷兩個二叉樹是否相同

判斷兩個二叉樹是否相同,我覺得應該從三個方面來判斷: 1、若兩個二叉樹都是空樹,則返回true,可認為兩個二叉樹相同; 2、若兩個二叉樹一個為空,一個不為空樹,則兩個二叉樹不相同,返回false; 3、若兩個二叉樹都不為空樹,則判斷兩個節點所指的值是否相同,若相同,則用遞迴

Java程式碼刪除一個已排好序連結串列中重複的數字

題目是:一直一個已排好序的連結串列,刪除其中重複的數字,我的想法是重新建一個連結串列,存沒有重複數字並且是已排好序的數字。 演算法思想是: 首先要考慮該連結串列是否為空或者只有一個節點 重新建立一個連結串列,將原來連結串列的頭節點設為新連結串列的頭節點,然後依次比較原來連結

linux find如何統計一個目錄檔案個數以及程式碼總行數的命令

知道指定字尾名的檔案總個數命令:  find . -name "*.html" | wc -l  知道一個目錄下程式碼總行數以及單個檔案行數:  find . -name "*.html"

java程式碼一個簡單的網上購物車程式

需求:1、寫一個商品類,有商品編號、商品名稱、商品分類、商品單價屬性。2、寫一個商品條目資訊類,有商品和數量兩個屬性,有商品總價格方法。 3、寫一個購物車類,有新增商品方法、檢視訂單資訊,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個測試類,測試上

Java-讀取某個目錄所有檔案、資料夾和3種從檔案路徑中獲取檔名的方法

1 讀取某個目錄下所有檔案、資料夾 public static ArrayList<String> getFiles(String path) { ArrayList<Str

java程式 一次改變指定目錄所有檔案編碼(包括子目錄中的檔案

package transCoding; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInpu