ファイルをあるディレクトリから別のディレクトリに置き換える必要があります。ネットで検索したところ、ファイルを置き換える効率的なソリューションが見つかりました。Files.walkFileTree を使用してディレクトリをトラバースし、ファイルを置き換えています。ファイルを置き換える前に、ターゲット ディレクトリにファイルが存在するかどうかを確認しています。ファイルが存在する場合は、新しいファイルを同じファイル名に置き換える必要があります。ただし、私の場合、ソースディレクトリからのファイル名は同じで、ファイル形式のみが異なります。
私は使っている
Files.copy(sourcefile,targetfile,REPLACE_EXISTING);
上記のコードは、ファイル名と形式が同じ場合にのみ、ファイルをターゲット ディレクトリに置き換えます。それ以外の場合は、新しいファイルと古いファイルをターゲット ディレクトリに配置するのではなく、古いファイルを削除していません。
Original Directory
Source Folder Target Folder
a.pdf a.txt
b.pdf b.txt
After running Files.copy
Source Folder Target Folder
a.pdf a.txt
b.pdf b.txt
a.pdf
b.pdf
But i need to replace Target Folder as
Target folder
(should replace .txt file and i need only .pdf files)
a.pdf
b.pdf