簡體   English   中英

讀取目錄中的所有文件,包括其子目錄

[英]Reading all files in a directory including its sub directories

這是我設置路徑的方式:

    dPath = dPath.replace("\\", "/");

    String iLen;
    String FileName;

    File iFolder = new File(dPath);
    File[] listOfFiles = iFolder.listFiles();

搜索時:

    for (int i = 0; i < listOfFiles.length; i++) 
    {
        if (listOfFiles[i].isFile()) 
        {
            FileName = listOfFiles[i].getName();

            for(String s : iEndsWith)
            {
                if(FileName.toLowerCase().endsWith(s))
                {
                    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy h:mm aaa");
                    iLen = ReadableBytes(listOfFiles[i].length());

                    Object rowData[] = { FileName, listOfFiles[i].getAbsoluteFile(), sdf.format(listOfFiles[i].lastModified()), iLen };
                    iTableModel.addRow(rowData);

                    iTotalFiles ++;
                }
            }
        }
    }

那只會在給定目錄路徑中查找文件,而不是子目錄。 我該如何改變?

如果您使用的是Java 7,則可以使用FileVisitorhttp : //docs.oracle.com/javase/tutorial/essential/io/walk.html

如果沒有,只需使用函數的簡單遞歸版本即可。

您可以使用Apache Commons中的DirectoryWalker遍歷目錄層次結構。

將文件夾作為要搜索的初始文件傳遞

File foldr = new File("c:/javaFolder");

public void addFilesToList(File folder) {
        File[] listofFiles = folder.listFiles();
        if (listofFiles != null) {
            for (File file : listofFiles) {
                if (file.isFile()) {


                } else
                    addFilesToList(file);

            }
        }
    }

暫無
暫無

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

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