簡體   English   中英

Java:單行列表目錄中的Dirs?

[英]Java: one-liner to list Dirs in a directory?

One-Liner列出TXT文件。

import java.io.File;
import java.io.FilenameFilter;
...
files = dir.listFiles(new FilenameFilter() {
           public boolean accept(File dir, String name) {
                return name.toLowerCase().endsWith(".txt");
                }
           }
        );

資源。

是否有一個單行列表在目錄中列出dirs?

public static void main (String[] args)  throws Exception {
    File dir = new File("yourDir");

    FileFilter fileFilter = new FileFilter() {
        public boolean accept(File file) {
            return file.isDirectory();
        }
    };

    File[] files  = dir.listFiles(fileFilter);

    for (File f : files)
        System.out.println( f.getName() );
}

這使用Commons IO,但實際上是列出所有目錄名稱的最簡單方法。 它還有一套更強大的過濾器,可用於其他目的:

String[] dirNames = new File("/Users/jonathan").list(DirectoryFileFilter.INSTANCE);
for (String dirName: dirNames) 
    System.out.println("Directory Name: " + dirName);
import java.io.File;
import java.io.FileFilter;
...
files = dir.listFiles(new FileFilter() { 
       public boolean accept(File pathname) { 
            return pathname.isDirectory();
       } 
    });

注意使用listFiles(FileFilter)而不是listFiles(FilenameFilter)

看看這個代碼,

import java.io.File;
import java.io.FilenameFilter;

public class FileNameFilter 
{
   public static void main(String[] args) 
   {
      File fl = new File("yourDir");

      // here we are retrieving only .txt files

      FilenameFilter fnf = new FilenameFilter()
      { 
         @Override
         public boolean accept(File dir, String name)
         {
            if(name.endsWith(".txt"))
            {
               return true;
            }
            else
            {
               return false;
            }
         }
      };

      // passing "fnf" object to listFiles() method to retrieve only html files

      File[] files = fl.listFiles(fnf);

      for(File file : files) 
      {
         System.out.println(file.getName());
      }
   }
}

暫無
暫無

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

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