如何通过在Java中提供其路径的子集来获取目录的完整路径?

时间:2011-07-07 11:51:28

标签: java file-io

例如,如果我提供\abc\xyz,是否可以获得<drivename>:\somefolder\abc\xyz

2 个答案:

答案 0 :(得分:1)

看看

new File("\\abc\\xyz").getAbsolutePath();

请注意,这将解析当前工作目录中的.\abc\xyz。这不包括您运行此代码的类的包路径。

<强>更新

对于文件系统扫描,请考虑使用

// Method listing all files matching some filter criteria
org.apache.commons.io.FileUtils.listFiles(File directory, 
  IOFileFilter fileFilter, 
  IOFileFilter dirFilter);

// A good filter for your use case
org.apache.commons.io.filefilter.WildcardFileFilter

更多详情:

http://commons.apache.org/io/

答案 1 :(得分:0)

我之前没有尝试过,但我能想到的唯一算法是DFS(深度优先搜索)或BFS(广度优先搜索),其中您搜索的树\图是您的文件系统,其中目录是图中的节点(它是一个树(非循环)),并且每个通向另一个目录的目录都有一个有向边(例如,abc是图中的一个节点,它有一个从其自身到xyz的有向边 - 另一个节点在那个树)。 创建树数据结构后,可以执行BFS或DFS着名算法来查找路径。