问题标签 [filefilter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

java - 从正则表达式中转义完整路径的一部分,同时保留其中的一部分

需要

我有一个文件夹存档,如下所示:

我想在 Java 中创建一个静态函数,给定一个存档路径(在本例中为 location C:\Users\myUser\myArchive\)和一个模式,返回一个List<String>与该模式匹配的所有文件夹。

例如,如果我说setupsArchive=C:\Users\myUser\myArchive\pattern= v*.ci,那么列表应该由v1.ciand组成v2.ci(与此模式匹配的两个文件夹)。

注意:不需要递归。我只关心存档下方文件夹的名称,而不关心其中的内容。

代码工作,但仅适用于 Linux

此函数在 Unix 环境中运行时有效:

但是,当我在 Windows 上运行它时,它会在这一行引发异常:

例外是 a java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 3,它的发生是因为(与 Unix 不同)Windows 中的路径分隔符是反斜杠,\,当我发送时C:\Users\...\u它被解释为正则表达式,这在该部分中是非法的pathname.toString().matches(setupsArchive + pattern)

我试图让它在 Windows 下工作

我知道我需要转义setupsArchive我的正则表达式部分,并match()只保留模式部分。

因此,我试图:

1. 将 setupsArchive 放在 Pattern.quote() 周围:

2. 仅将正则表达式匹配应用于分析文件夹的基本名称:

在这两种情况下,代码都可以正常编译和执行,但它不会过滤任何内容(即,即使有与模式匹配的数据,列表也会返回空)。

有人有什么主意吗?

0 投票
1 回答
77 浏览

java - 简单的 JFileChooser FileFilter 不起作用

以下是一个简单的代码,用于使用JFileChooserthis派生的文件保存在用户输入目录上,正如另一个 stackoverflow 问题的答案所建议的那样但是,此代码不会按预期工作,因为文件过滤器不会显示所有定义的过滤器。

该文件f_sample也将包含 null 但删除过滤器将导致文件f_sample按预期工作,包含所选文件。所以我认为故障的原因在FileFilter

文件过滤器有什么问题?我怎样才能让它发挥作用?请注意,代码来自 Oracle 教程,稍作修改。

最后一刻修改

所以我使用chooser.addChoosableFileFilter(filter);了代替,chooser.setFileFilter(filter);文件f_sample现在包含用户定义的文件。但是,定义的过滤器仍然不会显示在JFileChooser窗口上。

0 投票
0 回答
31 浏览

filefilter - 尝试使用 FileFilter 时出现 java.lang.NoClassDeffoundError

我的应用程序可以在我的笔记本电脑上运行,但是当我尝试运行使用代码的应用程序时,FileFilter我会NoClassDeffoundError在生产机器上运行。我的版本是 1.8.0.201,生产机器是 1.8.0.121。

0 投票
1 回答
98 浏览

java - 如何通过 getName().endsWith() 使用 FileFilter 的方法参考

我有一个 FileFilter 类型的 lambda 表达式,它为所有以 .java 结尾的文件返回 true -

我想对上述表达式使用方法参考。我的失败尝试——

是否可以对上述情况使用方法参考?如何?

0 投票
1 回答
38 浏览

node.js - multer 上的 fileFilter 仍然允许所有文件类型

在我的存储功能中添加了一个文件过滤器,仅允许上传图像文件类型,但仍在上传所有文件类型。

0 投票
1 回答
67 浏览

java - 如何让 JFileChooser 显示除 .huff 文件之外的所有类型的文件

我正在开发一个实现 Huffman 算法的 Java (Swing) 程序。它需要一个文件并将其压缩为 filename.huff 我必须让 JFileChooser 显示系统中的每个文件,但不是我压缩的具有 .huff 扩展名的文件

我没有尝试任何代码,因为我不知道该怎么做。但我知道如何制作一个仅显示特定类型文件的 FileFilter:

那么,问题是如何让 FileFilter 显示除 .huff 文件之外的所有类型的文件?

0 投票
0 回答
114 浏览

android - 仅适用于 json 文件的 Android 文件打开器 (Java)


我有一个非常简单的问题,但我找不到解决方案......
我想为我的 Android 应用程序提供一个文件选择器,用户只能选择 json 文件。
以下适用于所有文件:

但是如何将其限制为以“json”结尾的文件?
我尝试了类似的东西,intent.setType("text/*")或者intent.setType("text/json")没有用。
我还尝试了不同的方法,intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);其中 mimetypes 是一个同样不起作用的 Sring[]。

它实际上应该很简单,但我找不到解决方案:(

0 投票
0 回答
38 浏览

java - JFileChooser 文件过滤实际上并没有过滤(至少我打算这样做)

我正在尝试将 JFileChooser 设置为仅允许通过 showOpenDialog 选择特定的文件类型(pdf)。
我已经设置了一个文件过滤器,但我对它对 JFileChooser 的操作感到困惑。

我想要实现的是:

  1. 直观地排除其他文件类型,以防止用户从列表中选择它们。
  2. 实际上防止选择其他类型或无效文件。(即让 getSelectedFile() 实际返回一个有效的 pdf 文件)

这是我的代码:

我得到了这种行为:
视觉上 - 过滤有效,对话框只显示 PDF 文件,因此我只能从列表中选择 pdf 文件。
但是 - 我仍然可以手动选择一个无效文件,方法是在“文件名:”字段中输入一些名称,然后单击打开(或按 Enter)。
例如:如果我写 Untitled.png (它确实存在于当前打开的目录中)并打开,我将加载该 png 文件。
或者,如果写入一个不存在的文件名并单击打开,我实际上会得到一个加载了该名称的新文件。
(通过加载是指 getSelectedFile() 将返回的文件)。
如果设置了无效文件(基于过滤器),有没有办法不允许对话框批准打开操作?
当使用带有过滤器的 JFileChooser 对话框时,不应该是这种情况吗?

过滤器到底在做什么?JFileChooser 的文档没有解释任何这些方面。
我真的很感激解释这是如何工作的。
另外 setFileFilter 和 addChoosableFileFilter 有什么区别?他们给出完全相同的行为。

最后,这里有一些对话框和我正在处理的 JFrame 表单的屏幕截图:

https://ibb.co/bFVqVmt
https://ibb.co/5BcsXSW
https://ibb.co/2qq0qr9
https://ibb.co/jMXXXyN
https://ibb.co/g3kvtfd
https://ibb .co/2FshJpt

非常感谢!

0 投票
1 回答
439 浏览

copy - 如何将过滤器活动的输出直接传递到 ADF 中的复制活动?

我每天有 4000 个文件,每个文件平均大小为 30Kb,位于我们本地文件系统上的一个文件夹中。我想对文件名中的详细信息应用条件逻辑(几个和/或条件),仅将符合条件的文件移动到另一个文件夹中。我尝试将获取源文件夹中所有文件的元数据活动与过滤器活动链接起来,该过滤器活动将条件逻辑与具有嵌入式复制活动的每个活动一起应用。这可行,但处理文件需要数小时。在调试中运行管道时,输出窗口会列出作为行项目复制的每个文件。我已将 for each 中的批次计数设置增加到 50,但并没有改善。有没有办法将过滤器活动直接链接到复制活动而不使用每个活动?即将过滤器中的集合直接传递到副本的源中。或者,我们的一些其他管道仅使用指向源文件夹的复制活动,我们使用 * 和 ? 的组合使用简单的正则表达式配置其文件过滤器设置,这非常快。但是,在这个特定场景中,我的条件逻辑更加复杂,我需要将每个文件名中的属性与值进行比较,以决定是否应该移动文件。文件过滤器设置允许动态内容,因此我可以完全删除过滤器活动,将副本指向源文件夹并将条件逻辑放在文件过滤器的动态内容区域中,但是我如何获得对文件名的引用来进行条件检查?

0 投票
1 回答
66 浏览

driver - 如何获得适用于多个 Windows 版本的文件驱动程序的 WHQL 认证?

我用 VC++ 制作了一个小文件保护驱动程序,但我看到微软要求所有驱动程序都用 WHQL 签名才能安装在大多数最新的 Windows 版本上。我检查了 Hardware Lab Kit (HLK) 和 HCK 文档,似乎获得 WHQL 认证的唯一方法是在我希望用户使用驱动程序的每个 Windows 版本上安装 HLK/HCK。这意味着我必须安装每个 Windows 服务器版本和桌面版本,例如 Win7/8/10。

我是一名独立开发人员,并且已经获得了签署驱动程序的 EV 认证,那么有没有更简单的方法来为多个 Windows 版本的文件驱动程序获得 WHQL 认证?或者将来没有办法由独立开发者创建和分发文件过滤器驱动程序?