如何搜索文件并提供进程构建器的路径

时间:2011-11-08 14:37:43

标签: 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位于其他某个驱动器或位置(不知道确切位置),我该如何获取路径。

我们可以找到路径并运行相同的流程构建器。

先谢谢..

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

您可以使用此示例:http://download.oracle.com/javase/tutorial/essential/io/find.html

,而不是自己实现此功能

但要小心:简单的递归搜索可能需要花费很多时间。你可能有其他方法来找到文件?系统变量或注册表(因为你在Windows上)?

答案 2 :(得分:0)

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

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