我需要从给定目录获取文件及其父目录的路径,但不包括它。
因此,例如,如果给我的方法指定path:/home/user/test
作为路径,它将返回该目录及其下所有文件的路径。
因此,如果/home/user/test
有子文件夹:,/subdir1
并且/subdir2
每个包含file1.txt
,file2.txt
则该方法的结果将是2个字符串,其中包含/subdir1/file1.txt
和/subdir2/file2.txt
并且如果subdir1
在其中有一个目录,该目录中subsubdir
有file3.txt
,则为该文件创建的字符串将为/subdir1/subsubdir/file3.txt
,并且如果还有其他子目录可以继续。
我的想法是我只想要文件上方的目录路径,而不是绝对路径,因此只希望初始给定路径之后的目录。
我知道它有些混乱,但是我相信有人可以理解它。现在,我所拥有的只是一个递归函数,它可以打印出文件名及其绝对路径。
有什么帮助吗?
如果您尝试过一些事情并询问有关该问题的信息,那将会很好。
然而…
public class TestFileSearch {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new TestFileSearch();
}
public TestFileSearch() {
File parentPath = new File("C:/Users/shane/Documents");
List<String> files = list(parentPath);
for (String file : files) {
System.out.println(file);
}
}
protected List<String> list(File parent) {
return listFiles(parent, parent);
}
protected List<String> listFiles(File parent, File folder) {
List<String> lstFiles = new ArrayList<String>(25);
if (folder.isDirectory()) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
lstFiles.addAll(listFiles(parent, file));
} else {
String path = file.getPath();
String offset = parent.getPath();
path = path.substring(offset.length());
lstFiles.add(path);
}
}
}
}
return lstFiles;
}
}
您可以简单地进行普通的文件夹递归,返回文件列表和前缀的THEN条,但这取决于您
问题内容: 列出1000多个目录和子目录中文件名的最快方法是什么? 编辑; 我使用的当前代码是: 问题答案: 看起来不错(递归遍历目录)瓶颈将是您需要执行的所有文件I / O操作,优化Java不会显示任何实际改进。
问题内容: 假设我有一个目录中,其中有3个符号连接其他目录 ,和。我想列出中的所有文件,包括在那些,和。 为了更通用,我想列出所有文件,包括目录中的符号链接文件。,等停止在符号链接上,而无需导航到它们以进一步列出。 问题答案: 该选项将完成您想要的。它取消引用符号链接。 因此,您的命令将是: 您也可以使用 该选项指示find跟随符号链接到目录。 在Mac OS X上使用 如已弃用。
问题内容: 在Python中,我只想列出当前目录中的所有文件。我不希望从任何子目录或父目录中列出文件。 似乎确实有类似的解决方案,但它们似乎对我不起作用。这是我的代码段: 假设我在当前目录中有2个文件holygrail.py和Tim。我也有一个文件夹,其中包含两个文件- 我们称它们为Arthur和Lancelot。当我运行脚本时,这就是我得到的: 我对holygrail.py和Tim感到满意。但是
在Python中,我只想列出当前目录中的所有文件。我不想从任何子目录或父目录中列出文件。 似乎也有类似的解决方案,但它们似乎不适合我。以下是我的代码片段: 假设我有两个文件,holygrail.py和蒂姆在我的当前目录。我也有一个文件夹,里面有两个文件——让我们称之为亚瑟和兰斯洛特。当我运行脚本时,这是我得到的: 我对holygrail.py和蒂姆很满意。但是亚瑟和兰斯洛特这两个文件,我不想列出来
问题内容: 我有一个具有以下结构的文件夹 我只对rootDir中的xml文件感兴趣。如果我使用JDOM读取XML,则以下代码还将考虑“ testDirectory”中的文件并吐出“内容不允许异常” 如何在使用listFiles方法时排除子目录?以下代码可以工作吗? 问题答案: 使用a 代替,因为它将使您能够访问实际文件,然后包括对
问题内容: 如何在Clojure特定目录中的所有文件中创建一个列表?我必须求助于Java还是Clojure可以本地处理? 问题答案: 使用功能。 用法示例: