标签: directorystream

使用nio.file.DirectoryStream以递归方式列出目录中的所有文件;

我想列出指定目录中的所有FILES和该目录中的子目录.不应列出任何目录.

我目前的代码如下.它无法正常工作,因为它只列出指定目录中的文件和目录.

我怎样才能解决这个问题?

final List<Path> files = new ArrayList<>();

Path path = Paths.get("C:\\Users\\Danny\\Documents\\workspace\\Test\\bin\\SomeFiles");
try
{
  DirectoryStream<Path> stream;
  stream = Files.newDirectoryStream(path);
  for (Path entry : stream)
  {
    files.add(entry);
  }
  stream.close();
}
catch (IOException e)
{
  e.printStackTrace();
}

for (Path entry: files)
{
  System.out.println(entry.toString());
}
Run Code Online (Sandbox Code Playgroud)

问候.

java nio file directorystream

38
推荐指数
4
解决办法
7万
查看次数

DirectoryStream 返回路径的顺序是什么?文件名、最后修改时间、文件大小?

我正在尝试使用 DirectoryStream 读取文件夹中的多个文件。总共有10个项目。

doc_01.txt、doc_02.txt、doc_03.txt、doc_04.txt、doc_05.txt、doc_06.txt、doc_07.txt、doc_08.txt、doc_09.txt、doc_10.txt

我希望按照文件名的顺序读取文件。DirectoryStream 是否按文件名的顺序读取文件?因为这是我得到的结果:

./mydata/doc_01.txt、./mydata/doc_02.txt、./mydata/doc_03.txt、./mydata/doc_04.txt、./mydata/doc_08.txt、./mydata/doc_07.txt、./ mydata/doc_09.txt、./mydata/doc_10.txt、./mydata/doc_05.txt、./mydata/doc_06.txt

这是我的代码:

public static void readData(){
    Instant start = Instant.now();
    System.out.println("Start reading");

    Path path = Paths.get(String.join(File.separator, ".", "mydata"));

    try(DirectoryStream<Path> stream = 
            Files.newDirectoryStream(path, "*.txt")
    ){
        for(Path entry : stream){
            System.out.println("reading: " +entry.toString());
        }
    }catch(IOException e){
        System.err.println("Error: " + e.getMessage());
        e.printStackTrace();
    }
    Instant end = Instant.now();
    System.out.println("Done in " + Duration.between(start, end).toString());
}
Run Code Online (Sandbox Code Playgroud)

java directorystream

1
推荐指数
1
解决办法
3309
查看次数

标签 统计

directorystream ×2

java ×2

file ×1

nio ×1