ある場所から別の場所にファイルを移動するにはどうすればよいですか? プログラムを実行すると、その場所に作成されたファイルは指定された場所に自動的に移動します。どのファイルが移動されたかを知るにはどうすればよいですか?
12 に答える
myFile.renameTo(new File("/the/new/place/newName.file"));
File#renameToはそれを行います (名前を変更するだけでなく、少なくとも同じファイル システム上でディレクトリ間を移動することもできます)。
この抽象パス名が示すファイルの名前を変更します。
このメソッドの動作の多くの側面は、本質的にプラットフォームに依存します。名前変更操作は、あるファイルシステムから別のファイルシステムにファイルを移動できない可能性があり、アトミックではない可能性があり、宛先の抽象パス名を持つファイルの場合は成功しない可能性があります。もう存在している。名前変更操作が成功したことを確認するために、戻り値を常にチェックする必要があります。
より包括的な解決策 (ディスク間でファイルを移動したいなど) が必要な場合は、Apache Commons FileUtils#moveFileを参照してください。
Java 7 以降では、 を使用できますFiles.move(from, to, CopyOption... options)
。
例えば
Files.move(Paths.get("/foo.txt"), Paths.get("bar.txt"), StandardCopyOption.REPLACE_EXISTING);
詳細については、ファイルのドキュメントを参照してください
File.renameTo
from Java IO を使用して、Java でファイルを移動できます。このSOの質問も参照してください。
ソース フォルダーと宛先フォルダーのパスを追加するだけです。
すべてのファイルとフォルダーをソースフォルダーから宛先フォルダーに移動します。
File destinationFolder = new File("");
File sourceFolder = new File("");
if (!destinationFolder.exists())
{
destinationFolder.mkdirs();
}
// Check weather source exists and it is folder.
if (sourceFolder.exists() && sourceFolder.isDirectory())
{
// Get list of the files and iterate over them
File[] listOfFiles = sourceFolder.listFiles();
if (listOfFiles != null)
{
for (File child : listOfFiles )
{
// Move files to destination folder
child.renameTo(new File(destinationFolder + "\\" + child.getName()));
}
// Add if you want to delete the source folder
sourceFolder.delete();
}
}
else
{
System.out.println(sourceFolder + " Folder does not exists");
}
ファイルを移動するには、Jakarta Commons IOs FileUtils.moveFileも使用できます。
エラーが発生すると がスローされるIOException
ため、例外がスローされない場合は、ファイルが移動されたことがわかります。
そのタスクのために外部ツールを実行することもできますが ( copy
Windows 環境の場合と同様)、コードの移植性を維持するための一般的なアプローチは次のとおりです。
- ソースファイルをメモリに読み込む
- 新しい場所にあるファイルにコンテンツを書き込みます
- ソースファイルを削除
File#renameTo
ソースとターゲットの場所が同じボリューム上にある限り機能します。個人的には、ファイルを別のフォルダーに移動するために使用することは避けたいと思います。