【发布时间】:2015-11-14 11:34:38
【问题描述】:
我正在使用 Selenium 和 Chrome。我访问的一个页面会自动下载文件,但我无法确定它正在下载到哪个目录。通常它是 c:\users\\Downloads\ 但我不能确定它在哪里。名称将是 MyFiles_*.csv(这是 Windows 表示法。正则表达式将是 MyFiles_[0-9]+.csv 或类似名称。
所以我想在 unix find C: -name 'MyFiles_.*.csv' 中执行一些操作来查找该文件所在的目录。我找到了下面的代码示例,但它似乎只在当前目录中查找而不是子目录:
File f = new File("C:\\");
File[] matchingFiles = f.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.startsWith("MyFiles") && name.endsWith(".csv");
}
});
for (File f1 : matchingFiles) {
System.out.println(f1);
}
}
有没有办法检查所有子目录(并返回全名和完整路径)?
另外一个问题。有时,当我在 Windows 中搜索文件时,它会在一个目录中找到它,但也会在一个名为“Recent Files”之类的目录中找到它。我猜如果算法返回 > 1 个目录,我可以消除其中包含“最近”的任何目录。
提前感谢您的帮助。
【问题讨论】:
-
你可以“简单地”使用递归。或者从 Java 7 开始,FileVisitor API。
标签: java regex selenium windows-7