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