簡體   English   中英

如何使用Java swing獲取文件夾和子文件夾名稱並在txt中導出

[英]How to get folder and subfolders name using Java swing and export in txt

我有這個路徑 /user/shared/name/Documents。 在那個 Documents 里面有子文件夾和文件。

通過使用 Java swing,如何僅在給定路徑中獲取所有子文件夾名稱? 然后單擊導出按鈕並為路徑值生成文本文件。

示例.txt:

path /Users/User1/Desktop/arc_testing 2/

Directory:/Users/User1/Desktop/arc_testing 2/099923
----Directory:/Users/User1/Desktop/arc_testing 2/099923/000_Fonts
----Directory:/Users/User1/Desktop/arc_testing 2/099923/000_Fonts/fancybox
----Directory:/Users/User1/Desktop/arc_testing 2/099923/010_Correspondence
----Directory:/Users/User1/Desktop/arc_testing 2/099923/010_Correspondence/smart
Directory:/Users/User1/Desktop/arc_testing 2/099924
----Directory:/Users/User1/Desktop/arc_testing 2/099924/000_Fonts
----Directory:/Users/User1/Desktop/arc_testing 2/099924/000_Fonts/fancybox
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence/smart
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence/smart/images
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence/smart/js
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence/smart/services
----Directory:/Users/User1/Desktop/arc_testing 2/099924/010_Correspondence/smart/styles
Directory:/Users/User1/Desktop/arc_testing 2/099925
Directory:/Users/User1/Desktop/arc_testing 2/099926/020_Supplied
----Directory:/Users/User1/Desktop/arc_testing 2/099925/020_Supplied/doc
----Directory:/Users/User1/Desktop/arc_testing 2/099925/020_Supplied/font
----Directory:/Users/User1/Desktop/arc_testing 2/099925/020_Supplied/makefont
----Directory:/Users/User1/Desktop/arc_testing 2/099925/020_Supplied/pdf-ok
----Directory:/Users/User1/Desktop/arc_testing 2/099925/020_Supplied/tutorial

如果您使用的是 Java 8,請查看有用的方法Stream walk(Path start, FileVisitOption... options)

通過遍歷以給定起始文件為根的文件樹,返回一個懶惰地填充有 Path 的 Stream。 文件樹是深度優先遍歷的,流中的元素是 Path 對象,就像通過解析相對路徑對 start 一樣獲得。

另外,請參考這個問題: How do I iterate through the files in a directory in Java?

Oracle 有很好的教程: 遍歷文件樹

下面是一個遍歷文件系統的例子:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileTreeExample {

    private static final String START_PATH = "/home/xxx/dev/python";

    public static void main(String[] args) throws IOException {
        Files.walk(Paths.get(START_PATH))
            .map(Path::toFile)
            .filter(File::isDirectory)
            .map(File::getAbsolutePath)
            .forEach(System.out::println); // or write it to file

    }

}

結果:

/home/xxx/dev/python /home/xxx/dev/python/mongo_tutorial /home/xxx/dev/python/mongo_tutorial/mongo /home/xxx/dev/python/mongo_tutorial/mongo/ pycache /home/xxx/dev /python/mongo_tutorial/.idea /home/xxx/dev/python/mongo_tutorial/.idea/dictionaries /home/xxx/dev/python/pyminds /home/xxx/dev/python/pyminds/messages /home/xxx/dev /python/pyminds/results /home/xxx/dev/python/pyminds/.idea /home/xxx/dev/python/pyminds/ pycache /home/xxx/dev/python/bforce /home/xxx/dev/python/垃圾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM