0
我的工作目录中有不同种类的文件(.log,.xml,.opf等)。我需要复制他们的另一个文件夹。但只有一个文件被复制,据我所知这是因为在复制方法中使用StandardCopyOption.REPLACE_EXISTING
。 这是我的Java代码如何使用Java 8复制具有不同扩展名的多个文件?
String currentDirectory = new File(new File("").getAbsolutePath()).getPath();
tempDirPath = Files.createDirectories(Paths.get(jobFolder).resolve("output"));
try {
Files.copy(Paths.get(currentDirectory +File.separator+"content.xml"), tempDirPath, StandardCopyOption.REPLACE_EXISTING);
Files.copy(Paths.get(currentDirectory +File.separator+"content.smil"), tempDirPath, StandardCopyOption.REPLACE_EXISTING);
Files.copy(Paths.get(currentDirectory +File.separator+"content.opf"), tempDirPath, StandardCopyOption.REPLACE_EXISTING);
Files.copy(Paths.get(currentDirectory +File.separator+"content.ncx"), tempDirPath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
请帮我解决这个问题。 在此先感谢..!
'REPLACE_EXISTING'应该是指如果已经有一个将被取代的content.xml,但如果你复制content.smil不会取代的content.xml。但是如果你提供了一个目标文件名,每个文件都是一样的,那么你会替换它。这不是Java的问题,而是文件系统如何处理一般情况(在文件夹中不能有两个文件名相同)。如果这是你的问题,那么你需要自己提供一个独特的名字。 – Thomas
是否要将源目录中的某些选定文件复制到目标目录?如果你想复制它们,你可以简单地使用FileUtils方法 - FileUtils.copyDirectory(directory,destination) – woytech
注意:你应该使用'Paths.get(currentDirectory,“context.xml”)''而不是'File .separator'。这就是'Paths.get()'可变参数的用途。 – RealSkeptic