获取包含字符串的目录的全名

时间:2015-02-25 17:04:43

标签: java firefox

我尝试使用Java来获取目录的全名,使用它包含的字符串。基本上,我的用例是我希望能够使用Firefox默认配置文件目录中的文件。因此,Windows 7中的Firefox配置文件目录具有以下路径:

C:\Users\myUser\AppData\Roaming\Mozilla\Firefox\Profiles\s529v6bj.default

我想要使用该目录中的prefs.js文件。但是,在将我的代码移植到另一台机器时,.default之前的字符串可能是任何字符串,default之后甚至可能会有更多字符。我可以保证的一件事是Profiles中只有一个目录包含字符串"默认"。我希望将目录作为字符串返回,基本上就像......

String ffProfileDir = System.getProperty("user.home")+"\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\*.default*";

除了我知道当然只是在.default的任何一侧抛出一些星号都不会有诀窍。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这应该适用于你想要的东西。

public class DirectoryReader {
    public static void main(String[] args) {
        readDirectory();
    }

    public static void readDirectory() {
        String root = System.getProperty("user.home") + "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\";
        File file = traverseFolder(new File(root));
        String fileName = file.getName(); // if you want to get the directory name
    }

    public static File traverseFolder(File root) {
        if (root.isDirectory()) {
            File[] files = root.listFiles();
            if (root == null) {
                return null;
            }

            for (File f : files) {
                String fileName = f.getName();
                if (fileName.matches(".*default.*")) {
                    System.out.println(fileName);
                   return f;
               }
           }
        }

        return null;
    }
}