2016-09-25 124 views
2

我想在Java 8中列出文件夾中唯一的文件名。我試過這段代碼,但它給了我完整的路徑。如何從java8中的文件夾中獲取唯一的文件名

try { 
    List<java.nio.file.Path> files  = Files.list(new File("F://csv/").toPath()) 
       .filter(p -> !p.getFileName() 
       .toString().startsWith(".")) 
       .limit(3) 
       .collect(Collectors.toList()); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

回答

3

試着用這一個,更改文件變量的路徑,如C:\ DIR

File folder = new File("Dir path"); 
    File[] listOfFiles = folder.listFiles(); 

     for (int i = 0; i < listOfFiles.length; i++) { 
      if (listOfFiles[i].isFile()) { 
      System.out.println(listOfFiles[i].getName()); 
      } 
     } 
+0

我想在java 8中實現,這是java之前的先決條件。請告訴我在java 8 –

+0

它與Java8的工作也。 –

+0

是的,它是與Java 8的工作,但它不是Java 8 –

4

使用Path::getFileName從路徑獲取文件名:

import static java.util.stream.Collectors.toList; 

List<Path> fileNames = Files.list(Paths.get("f:/csv")) 
          .filter(...) 
          .limit(...) 
          .map(Path::getFileName) 
          .collect(toList()); 
+3

注意:您應該關閉Files.list所返回的Stream,因此它應該位於嘗試-與資源。 –

相關問題