Java 如何搜索文件并为process builder提供路径

Java 如何搜索文件并为process builder提供路径,java,Java,我正在使用process Builder使用java执行外部命令 以下是代码: command.add(System.getenv("ProgramFiles") +"\\IrfanView\\"+"i_view32.exe "); command.add("D:\\BMP\\*.bmp /import_pal=D:\\default.pal /convert=D:\\ABC\\*.bmp") 如果i_view32.exe位于其他驱动器或位置(不知道确切位置),如何获取路径 我们能否找到路径并

我正在使用process Builder使用java执行外部命令

以下是代码:

command.add(System.getenv("ProgramFiles") +"\\IrfanView\\"+"i_view32.exe ");
command.add("D:\\BMP\\*.bmp /import_pal=D:\\default.pal /convert=D:\\ABC\\*.bmp")
如果
i_view32.exe
位于其他驱动器或位置(不知道确切位置),如何获取路径

我们能否找到路径并运行相同的process Builder


提前感谢。

使用class.getResource在当前类路径上查找文件。

使用class.getResource在当前类路径上查找文件。

您可以使用class
java.io.file
的API:
list()
listFiles()
以及过滤后的变体。这有助于检查文件是否显示在特定位置。这些方法还允许您实现文件搜索机制:您可以递归地遍历文件系统以找到所需的文件

您可以使用以下示例,而不是自己实现:


但要小心:简单的递归搜索可能需要很多时间。您可能有其他方法来定位该文件吗?系统变量或注册表(因为您在windows上)?

您可以使用类
java.io.File
list()
listFiles()
的API,并且可以使用过滤过的变量。这有助于检查文件是否显示在特定位置。这些方法还允许您实现文件搜索机制:您可以递归地遍历文件系统以找到所需的文件

您可以使用以下示例,而不是自己实现:


但要小心:简单的递归搜索可能需要很多时间。您可能有其他方法来定位该文件吗?系统变量或注册表(因为您在windows上)?

我确信存在提供搜索功能的库,但在您的情况下,您可以编写简单的递归过程来查找文件。 下面是一些伪代码:

look("root")

func look(path) 
   for every file in path.getFiles
     if (file = "i_view32.exe") return 0; 
   end
   for every directory in path.getDirectories
     look(directory)
   end

我确信存在提供搜索功能的库,但在您的情况下,您可以编写简单的递归过程来查找文件。 下面是一些伪代码:

look("root")

func look(path) 
   for every file in path.getFiles
     if (file = "i_view32.exe") return 0; 
   end
   for every directory in path.getDirectories
     look(directory)
   end