我尝试使用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
的任何一侧抛出一些星号都不会有诀窍。有什么建议吗?
答案 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;
}
}