我想列出指定目录中的所有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)
问候.
我正在尝试使用 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)