| |-->Foo2 --> lore.java
|Foo|
| |-->Foo3 --> Foo4 --> ipsum.java
|
| |--> Foo2 --> lore.java
| |
|Foo| | --> ipsum.java
| |--> Foo3 |
| | | --> Foo4 --> rosae.java
在本例中,我希望保存foo/foo2、foo/foo3和foo/foo3/foo4。有什么想法吗?谢了!
公共类ListAllFIlesClassic{
public static void main(String[] args) {
File folder = new File(
"java\\com\\javaprogramto\\w3schools\\programs");
List<String> fileNamesList = new ArrayList<>();
traverseDirectory(".*\\.java", folder, fileNamesList);
for (String fileName : fileNamesList) {
System.out.println(fileName);
}
}
public static void traverseDirectory(final String pattern, final File folder, List<String> fileNamesList) {
for (final File f : folder.listFiles()) {
if (f.isDirectory()) {
traverseDirectory(pattern, f, fileNamesList);
}
if (f.isFile()) {
if (f.getName().matches(pattern)) {
fileNamesList.add(f.getAbsolutePath());
}
}
}
}
}
---使用Java 8 walk()
public static void main(String[] args) {
String directory = "java\\com\\javaprogramto\\w3schools\\programs";
// Finding only files.
System.out.println("File Names : ");
printFileNames(directory);
// Finding only directories
System.out.println("Folder Names : ");
printFolderNames(directory);
// Filtering file names by a pattern.
System.out.println("Filtering name by a pattern \"Line\": ");
filterByPattern(directory);
}
private static void printFileNames(String directory) {
// Reading the folder and getting Stream.
try (Stream<Path> walk = Files.walk(Paths.get(directory))) {
// Filtering the paths by a regualr file and adding into a list.
List<String> fileNamesList = walk.filter(Files::isRegularFile).map(x -> x.toString())
.collect(Collectors.toList());
// printing the file nams
fileNamesList.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void printFolderNames(String directory) {
// Reading the folder and getting Stream.
try (Stream<Path> walk = Files.walk(Paths.get(directory))) {
// Filtering the paths by a folder and adding into a list.
List<String> folderNamesList = walk.filter(Files::isDirectory).map(x -> x.toString())
.collect(Collectors.toList());
// printing the folder names
folderNamesList.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void filterByPattern(String directory) {
// Reading the folder and getting Stream.
try (Stream<Path> walk = Files.walk(Paths.get(directory))) {
// Filtering the paths by a folder and adding into a list.
List<String> fileNamesList = walk.map(x -> x.toString()).filter(f -> f.contains("Line"))
.collect(Collectors.toList());
// printing the folder names
fileNamesList.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
问题内容: 我的功能有点问题。我想在许多目录中获取所有文件。目前,我可以检索传入参数的文件中的文件。我想检索作为参数传递的文件夹中每个文件夹的html文件。我会解释,如果我把参数“测试”我检索“测试”的文件,但我想找回“测试/ 1 / * HTML。”,“测试/ 2 / /。 html的”: 结果:[1,2,3] 谢谢 ! 问题答案: 看起来npm软件包会为您提供帮助。这是一个如何使用它的示例:
问题内容: 我想以编程方式访问将包含在我的项目文件夹中的特定文件。有没有办法做到这一点?如果是这样,我将文件放在项目文件夹中的什么位置,获取文件路径的一些简单代码是什么? 问题答案: 将文件放在项目的根文件夹中。然后获取文件URL,路径和其他详细信息,如下所示: 编辑: 替代方法(如果文件在您的类路径中,例如,将文件放在“ src”文件夹中,并确保编译后将其移入“ bin”或“ classes”文
本文向大家介绍java递归读取目录下所有文件的方法,包括了java递归读取目录下所有文件的方法的使用技巧和注意事项,需要的朋友参考一下 java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),得到files[]数组,然后遍历得到的所有文件,通过isFile(文件)和isDirectory(文件夹
我正在尝试获取一个字符串集合,该集合为我提供所有类成员的字段名,以
问题内容: 我正在尝试使用FileInputStream打开名称中包含空格的文件。 例如: 结果是抛出了FileNotFoundException。我试图对filePath进行硬编码,以仅查看是否应该转义空格字符,但它似乎没有用。关于这个问题有什么建议吗? 编辑:只是与每个人都在同一个页面上查看此问题…打开名称中没有空格的文件有效,具有空格的文件将失败。权限既不是这里的问题,也不不是文件夹分隔符。