Apache Camel 作为文件浏览器

Apache Camel as file explorer

我需要一种方法来显示(远程)目录的内容,并且由于主应用程序大量使用 Apache Camel,我想依靠 Apache Camel再次完成这个任务。

因此,我们的目标是拥有一个文件资源管理器视图,其中列出基本目录内容(目录和文件),并且通过单击给定目录,应通过显示其内容来刷新视图,等等。 .. 一种让用户导航目录的 FTP 客户端(例如 WinSCPFileZilla 等)远程或本地,具体取决于上下文。

如果必须使用 Apache Camel,我会使用:

然后,从给定的基目录开始,我将使用 recursive=true 检索其全部内容(因此,基目录和所有子目录包含的所有文件)。这样,通过将结果映射到树中并将其保存在内存中,我将能够识别目录结构并仅向用户显示特定的信息子集,具体取决于其导航。

但是,这种方法至少有三个副作用:

  1. 由于会立即检索完整结构,因此无法根据用户导航延迟加载给定节点
  2. 以同样的方式,有必要将完整结构保存在内存中,即使用户正在查看包含例如单个文件的叶子
  3. 不可能显示空目录...据我所知,事实上,Camel 只读取文件,以防目录 /D 包含文件 F.txt 和空目录 /E,Camel 组件会 return /D/F.txt 但不会 /D/E,这是一个目录

第 1 点和第 2 点可能可以通过指定 maxDepth=2 来修复,以便识别当前级别的所有文件和所有目录...但是,再次考虑以下结构:

root
|_ file1.txt
|_ sub-dir-1
   |_ sub-dir-1-A
      |_ nested-file.txt
|_ sub-dir-2
   |_ file2.txt

file component,从root开始,有recursive=truemaxDepth=2,只会return

(没有sub-dir-1,不直接包含文件)。

所以,我的问题是:

  1. Apache Camel 是正确的选择吗?
  2. Apache Camel 中,是否有更好的方法来导航给定目录?
  3. Apache Camel 中是否也可以检索有关空目录的信息?

广告 1) 可能不是——它是一个集成库,而不是目录监听工具

广告 2) 不,它不是目录监听工具

广告 3) 否,仅适用于文件。