0

これは私がパスを設定する方法です:

    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 ++;
                }
            }
        }
    }

これは、指定されたディレクトリ パス内のファイルのみを検索しますが、サブ ディレクトリは検索しません。どうすればそれを変更できますか?

4

3 に答える 3

1

Java 7 を使用している場合は、 http FileVisitor: //docs.oracle.com/javase/tutorial/essential/io/walk.htmlを使用できます。

そうでない場合は、関数の単純な再帰バージョンを使用してください。

于 2012-11-01T02:53:16.980 に答える
1

Apache Commons のDirectoryWalkerを使用して、ディレクトリ階層をたどることができます。

于 2012-11-01T02:54:46.967 に答える
1

検索する初期ファイルとしてフォルダーを渡す

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);

            }
        }
    }
于 2012-11-01T02:57:01.087 に答える