作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在此处输入代码
我编写了以下代码,该代码递归地搜索文件夹目录以查找特定文件夹。该程序应该检查文件夹名称,如果文件夹名称是“src”,那么它应该进入该文件夹以获取所有文件。目前该程序正在从所有目录中获取所有文件。
public class Main {
public static void main(String[] args) {
File fileObject = new File("C:\\Users\\lizzie\\Documents\\");
recursiveTraversal(fileObject);
}
public static void recursiveTraversal(File fileObject)
{
if (fileObject.isDirectory())
{
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursiveTraversal(aFile);
}
}
else if (fileObject.isFile())
{
System.out.println(fileObject.getAbsolutePath());
}
}
}
当我检查某个文件夹是否是目录时,我添加了以下约束,但这没有帮助。
if (fileObject.isDirectory() && fileObject.getName().equals("src"))`
请让我知道我可以做些什么来改进我的代码。任何事情都会受到赞赏。谢谢
最佳答案
如果您查看 recursiveTraversal
中的 if-else,您会发现您正在打印任何不是目录的内容,无论它位于何处。这是一个修复:
public class Main {
public static void main(String[] args) {
File fileObject = new File("C:\\Users\\lizzie\\Documents\\");
recursiveSearch(fileObject);
}
public static void recursiveSearch(File fileObject) {
if (fileObject.isDirectory()) {
if (fileObject.getName().equals("src")) {
recursivePrint(fileObject);
} else {
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursiveSearch(aFile);
}
}
}
// ignore non-directory objects during search
}
public static void recursivePrint(File fileObject)
{
if (fileObject.isDirectory())
{
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursivePrint(aFile);
}
}
else if (fileObject.isFile())
{
System.out.println(fileObject.getAbsolutePath());
}
}
}
这将以递归方式打印任何名为 src
的目录的所有文件。
关于java - 遍历目录查找特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891707/
我是一名优秀的程序员,十分优秀!