当前位置: 首页 > 知识库问答 >
问题:

如何使用Apache Camel的File组件选择子文件夹?

祖迪
2023-03-14

我有一个基于Spring Boot的Camel应用程序,有一个定义的路由应该轮询特定的文件夹(例如c://test)。在这个文件夹中,有一些子文件夹按一天中的序号命名:196,197,198等。我需要过滤这些子文件夹,并选择名称中最大值的文件夹。换句话说,我需要动态地为文件组件选择文件夹,例如C:/test/197

这样的子文件夹选择可以使用Camel实现吗?

更新:目前没有机会从代码中扫描根文件夹中的子文件夹,因此解决方案应该只依赖于Camel框架。

共有1个答案

谷梁英毅
2023-03-14

如果筛选文件或文件夹的可配置选项不适合您的情况,可以实现GenericFileFilter类并将其配置为filter选项。

GenericFileFilter类只包含一个Accept方法,该方法返回true(文件被导入)或false(文件被忽略)。

注意,如果要处理子目录及其文件,需要配置recursive=true。如果没有递归选项,Camel默认情况下会忽略所有子目录。

如果激活recursive选项,则对文件和文件夹调用GenericFileFilterAccept方法。别忘了处理文件夹。如果为一个目录返回false,则忽略该目录中的所有文件。

因此,对于您的情况(从某个子文件夹导入所有文件),我看到如下所示

@Override
public boolean accept(GenericFile file) {
    correctSubfolder = ... calculate name

    if (file.isDirectory() && file.getFileName().equals(correctSubfolder)) {
        // walk into the correct subdirectory
        return true;
    }

    if (!file.isDirectory() && file.getParent().equals(correctSubfolder)) {
        // only process files of the correct subdirectory
        return true;
    }

    // ignore everything else
    return false;
 类似资料:
  • 问题内容: 我正在自动化一个UI测试,其中涉及选择要上传的文件,我能够使用此解决方案自动化文件选择。 我的问题是我需要选择许多要上传的文件,在发送的路径中应该遵循一种特殊的格式吗?因为我尝试了用空格分隔的路径,但没有用。 问题答案: 要 上传多个文件, 您可以构造 字符串, 并添加文件的所有 绝对路径 ,并用分隔,如下所示:

  • 问题内容: 如何选择多个文件? 问题答案: 在HTML5中,您可以添加multiple属性以选择多个文件。 旧答案: 每个只能选择1个文件。如果要发送多个文件,则必须使用多个输入标签或使用Flash或Silverlight。

  • 问题内容: 如何选择多个文件? 问题答案: 新答案: 在HTML5中,您可以添加属性以选择多个文件。 旧答案: 每个只能选择1个文件。如果要发送多个文件,则必须使用多个输入标签或使用Flash或Silverlight。

  • 此对话框可让用户选择需要打开或保存的文件的位置和名称。 它嵌入了FileChooserWidget并在action_area中提供了OK和CANCEL按钮。 以下是gtk.FileChooserDialog类的构造函数 - Dlg=gtk.FileChooserDialog (title = None, parent = None, action = gtk.FILE_CHOOSER_AC

  • 问题内容: 如果我想替换选项 在给定的示例中,通过在react jsx文件中使用数组,我将如何进行? 最好的祝福 蓝色 问题答案: 因为它只是JavaScript,所以有上百万种方法。我通常采用的方式是映射容器以生成胆量。for循环或其他方法也可以正常工作。 或者在es6中以更现代的方式反应,您可以

  • 点击“添加文件”或“添加 URL”来添加导入源文件。然后,为源文件选择“编码”。 【注意】你可以同时导入多个文件。 ODBC 设置一个 ODBC 数据源连接 安装合适的 ODBC 管理员和文件相关的驱动程序。 在应用程序,选择“工具程式”->“ODBC 管理员”;或在 Navicat 中,在这个步骤点击“ODBC 管理员”按钮。 在“用户数据源名”选项卡点击“添加”按钮。 选择合适的 ODBC 驱