簡體   English   中英

如何使用Java從一個文件夾中獲取所有文本文件?

[英]How to get all text files from one folder using Java?

我需要從文件夾中讀取所有“.txt”文件(用戶需要選擇這個文件夾)。

請指教怎么做?

您可以使用filenamefilter類,這是非常簡單的用法

public static void main(String[] args) throws IOException {

        File f = new File("c:\\mydirectory");

        FilenameFilter textFilter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.toLowerCase().endsWith(".txt");
            }
        };

        File[] files = f.listFiles(textFilter);
        for (File file : files) {
            if (file.isDirectory()) {
                System.out.print("directory:");
            } else {
                System.out.print("     file:");
            }
            System.out.println(file.getCanonicalPath());
        }

    }

只需創建一個filenamefilter實例覆蓋接受方法你想要的

假設您已經擁有該目錄,您可以執行以下操作:

File directory= new File("user submits directory");
for (File file : directory.listFiles())
{
   if (FileNameUtils.getExtension(file.getName()).equals("txt"))
   {
       //dom something here.
   }
}

FileNameUtils.getExtension() 可以在這里找到。

編輯:您似乎想要做的是從 Web 瀏覽器訪問文件結構。 根據this previous SO post,由於安全原因,您想要做的事情是不可能的。

您需要讀取 目錄並在其中進行迭代。

它更多是關於 Java 訪問文件系統的問題,而不是關於 MVC 的問題

我編寫了以下函數來搜索目錄中的所有文本文件。

public static void parseDir(File dirPath)
    {

        File files[] = null;
        if(dirPath.isDirectory())
        {
            files = dirPath.listFiles();
            for(File dirFiles:files)
            {

                if(dirFiles.isDirectory())
                {
                    parseDir(dirFiles);
                }
                else
                {
                    if(dirFiles.getName().endsWith(".txt"))
                    {
                        //do your processing here....
                    }
                }
            }

        }
        else
        {
            if(dirPath.getName().endsWith(".txt"))
            {
                //do your processing here....
            }
        }

    }

看看這是否有幫助。

提供一個文本框給用戶輸入目錄的路徑。

File userDir=new File("userEnteredDir");
File[] allfiles=useDir.listFiles();

使用 getExtension() 方法迭代 allFiles 以過濾 .txt 文件

暫無
暫無

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

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