我想读取一个目录,并在另一个目录中创建相同的文件和子目录。
目录的路径将是用户定义的值。
private static void readFiles(File sourceFolder, String destePath) {
if (sourceFolder.isDirectory())
for (File sourceFile : sourceFolder.listFiles()) {
if (sourceFile.isFile()) {
File destFile = new File(destePath + "/"
+ sourceFile.getName());
updateConnectorXML(sourceFile, destFile);
} else {
{
destePath = destePath + "/" + sourceFile.getName();
File destFile = new File(destePath);
destFile.mkdir();
readFiles(sourceFile, destePath);
}
}
}
}
这里e.d sourceFile将是“c:/ abc”,这是一个目录,我正在读取sourceFile的文件和子目录。现在在updateConnectorXML(sourceFile, destFile)
我只是更新XML文件。
现在我想在另一个包含更新XML文件的文件夹中创建相同的目录结构。
在上面的代码中,destePath
只更改为一个目录,所有文件都进入目录。我该如何从该目录返回?
答案 0 :(得分:0)
一个基本错误是重用参数destePath来保存各种子目录路径。比较:
private static void readFiles(File sourceFolder, String destePath) {
if (sourceFolder.isDirectory()){
for (File sourceFile : sourceFolder.listFiles()) {
if (sourceFile.isFile()) {
File destFile = new File(destePath + "/"
+ sourceFile.getName());
updateConnectorXML(sourceFile, destFile);
} else {
String subPath = destePath + "/" + sourceFile.getName();
File destDir = new File(subPath);
destDir.mkdir();
readFiles(sourceFile, subPath);
}
}
}
}