既存のディレクトリ構造をコピーしようとしています (ファイルの内容自体は必要ありません。長さ 0 のダミー ファイルで十分です)。ただしmkdirs()
、必要なディレクトリを作成しないためfile.createNewFile()
、IOException
. コードは次のとおりです。
private static void readAndCopy(File fileToCopy) throws IOException {
File localVersion = new File(fileToCopy.getCanonicalPath().replace("O:\\", "C:\\xfer\\"));
System.out.println("Replicating " + fileToCopy.getCanonicalPath() + " to " + localVersion.getCanonicalPath());
if (fileToCopy.isDirectory()) {
boolean dirCreated = localVersion.getParentFile().mkdirs();
System.out.println(localVersion.getCanonicalPath() + " " + (dirCreated ? "" : "not ") + "created");
if (dirCreated) {
for (File content : fileToCopy.listFiles()) {
readAndCopy(content);
}
}
} else {
if (!localVersion.exists()) {
localVersion.createNewFile();
}
}
}
public static void main(String[] args) throws IOException {
readAndCopy(new File("o:\\MY_SRC_DIR"));
}
エラーメッセージは次のとおりです。
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
私も試しました
File origParentFile = fileToCopy.getParentFile();
File newParent = new File(origParentFile.getCanonicalPath().replace("O:\\", "C:\\xfer\\"));
localVersion = new File(newParent, fileToCopy.getName());
、しかし、それもうまくいきませんでした。