我正在使用Files.walk
函数来获取主目录的子目录中存在的文件。例如:
/path/to/stuff/foo/bar1/myfile.sql
/path/to/stuff/foo/bar1/myfiles.sql
/path/to/stuff/foo/bar2/myfile.sql
/path/to/stuff/foo/bar3/myfile.sql
/path/to/stuff/foo/bar4/myfile.sql
/path/to/stuff/foo/bar5/
/path/to/stuff/foo/bar6/myfile.sql
/path/to/stuff/foo/bar7/myfile.sql
/path/to/stuff/foo/bar8/myfile.sql
/path/to/stuff/foo/bar9/myfile.sql
这是我的代码:
Files.walk(Paths.get("/path/to/stuff")).forEach(filePath -> {
if (Files.isRegularFile(filePath)) {
buildFiles();
}
});
在buildFiles中我需要获取文件名和子文件名,并将其作为文件名示例循环1:path=/path/to/stuff/foo/bar1/myfile.sql
,文件名应为foo_bar1.sql
。我该怎么做?
答案 0 :(得分:0)
您必须使用路径创建文件。这将有助于您管理您的文件。我想你想知道是否用
创建一个文件新文件()
不会覆盖您的文件。不要担心它会赢得它会有助于对你的文件进行某种java引用。
Files.walk(Paths.get("/path/to/stuff")).forEach(filePath -> {
if (Files.isRegularFile(filePath1)) {
File file1 = new File(filePath1);
String folderName = file.getName();
Files.walk(Paths.get("/path/to/stuff"+folderName)).forEach(filePath2 -> {
if (Files.isRegularFile(filePath2)) {
File file2 = new File(filePath2);
String subFolderName = file2.getName();
String result = folderName+subFolderName+".sql";
builFiles(result)
}
});
}
});