- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 NIO 类过滤隐藏文件。
当我在 Windows 10 上运行附加的代码时,我得到以下输出:
Files:
c:\Documents and Settings
c:\PerfLogs
c:\Program Files
c:\Program Files (x86)
c:\Users
c:\Windows
Paths:
c:\$Recycle.Bin
c:\Config.Msi
c:\Documents and Settings
c:\Intel
c:\IntelOptaneData
c:\OEM
c:\OneDriveTemp
c:\PerfLogs
c:\Program Files
c:\Program Files (x86)
c:\ProgramData
c:\Recovery
c:\System Volume Information
c:\Users
c:\Windows
File.listFiles(FileFilter)
方法)是我在 Windows 文件资源管理器中看到的列表,也是我期望看到的(文档和设置除外,我知道如何解决)
import java.io.*;
import java.nio.file.*;
public class ListFilesNIO
{
public static void main(String[] args) throws Exception
{
String directory = "c:\\";
// Use old File I/O
FileFilter fileFilter = new FileFilter()
{
@Override
public boolean accept(File entry)
{
if (entry.isHidden()) return false;
return true;
}
};
System.out.println("Files:");
File[] files = new File( directory ).listFiles( fileFilter );
for (File file : files)
{
System.out.println( "\t" + file );
}
// Use NIO
DirectoryStream.Filter<Path> pathFilter = new DirectoryStream.Filter<Path>()
{
@Override
public boolean accept(Path entry) throws IOException
{
if (Files.isHidden( entry )) return false;
return true;
}
};
System.out.println();
System.out.println("Paths:");
DirectoryStream<Path> paths = Files.newDirectoryStream(Paths.get( directory ), pathFilter);
for (Path path : paths)
{
System.out.println( "\t" + path );
}
}
}
最佳答案
这不是错误而是自 jdk7 以来已知的功能(!),Windows 隐藏目录未被检测为隐藏,请参阅此 bug而这个 one (修复 jdk13)。
作为一种解决方法,您可以这样做:
import java.nio.file.attribute.DosFileAttributes;
...
DirectoryStream.Filter<Path> pathFilter = new DirectoryStream.Filter<Path>()
{
@Override
public boolean accept(Path entry) throws IOException
{
DosFileAttributes attr = Files.readAttributes(entry, DosFileAttributes.class);
return !attr.isHidden();
}
};
关于java - 如何使用 DirectoryStream.Filter 过滤隐藏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61785056/
DirectoryStream stream = Files.newDirectoryStream( DirectoryPath, ".txt" ); 我有一个目录流,其中保存在指定目录路径中找到的所
我想显示特定文件夹中的所有文件扩展名,并使用 DirectoryStream 给出每个扩展名的总数。 现在我只显示该文件夹中的所有文件,但我如何才能只显示它们的扩展名呢?我还应该获取这些文件的扩展名,
DirectoryStream的文档中明确指出: The iterator is weakly consistent. It is thread safe but does not freeze th
我对 DirectoryStream 有疑问.我目前尝试为我的应用程序构建一个 LogViewer,它应该遍历目录中的所有文件并将它们添加到网格中。 出于测试目的,它目前只包含一个文件。 代码如下:
读取 DirectoryStream 的 API 时我错过了很多功能。首先,它建议使用 for 循环从流转到 List。 .我想念它是 DirectoryStream不是 Stream . 如何制作
我想使用 java 8 DirectoryStream 来查找与 glob 模式匹配的文件,但我想在 Groovy 中执行此操作(至少 2.4)。不过,我很难找到如何做到这一点的示例,因为 groov
我正在尝试使用 NIO 类过滤隐藏文件。 当我在 Windows 10 上运行附加的代码时,我得到以下输出: Files: c:\Documents and Settings
我有以下代码: Map fileContentsByName = new HashMap(); try (DirectoryStream directoryStream
我已经对 Streams 进行了一些测试,特别是对 nio-package 的 DirectoryStreams 进行了测试。我只是尝试获取按上次修改日期和大小排序的目录中所有文件的列表。 旧 Fil
我在一个名为 Test.java 的类中有这个函数,它包括; public List getAllFoldersInTmp(String directory) throws IOException {
在列出目录中的文件时,我注意到一个奇怪的行为。我的情况是我有一个保存在数据库中的txt文件列表,与这些数据文件相对应的是xml文件,其中包含每个txt的一些标签,这些标签与其在db中的元属性相关联。
这段代码可以变成lambda表达式吗?我尝试了很多,但我没有得到它。 DirectoryStream.Filter dirFilter = new DirectoryStream.Filter() {
虽然我已经看到了很多类似问题的答案,但我无法使以下代码按我认为应该的方式工作: File dataDir = new File("C:\\User\\user_id"); PathMatcher pa
我正在尝试研究 newDirectoryStream 的 DirecoryStream.Filter 示例,我可以在其中列出目录下的所有文件(及其所有子目录) 超过 60 天,例如。 Director
我想列出指定目录中的所有文件以及该目录中的子目录。不应列出任何目录。 我当前的代码如下。它不能正常工作,因为它只列出指定目录中的文件和目录。 我该如何解决这个问题? final List files
DirectoryStream 和 File.list() 在性能上有区别吗 我曾尝试在 Linux 平台上跟踪这两个 java 程序,它使用具有相同参数的 getdents64 系统调用。在我看来两
DirectoryStream的唯一用法我见过的使用类型 Path作为其类型参数,DirectoryStream来自Files.newDirectoryStream(Path) . 此外,由于 doc
所以我“听说”Java 7 中引入的 DirectoryStream 比传统的目录列表方法更快。然而,对我来说情况并非如此。列出整个目录可能会更快,但是当过滤掉文件并仅接受文件夹时,需要更多时间。例如
我想返回路径流(这些是位于某个目录中的文件)。我最初的方法是这样的: DirectoryStream getFiles(Path dir) throws IOException { Files
我是一名优秀的程序员,十分优秀!