Java でファイル・フォルダをコピー・移動


忙しすぎて死んでたゎ(´・ω・`)


んで放置してすみません(´;ω;`)




 でも勉強なったゎ(´・ω・`)w


JavaでのFile操作が厄介だった(;´∀`)



今回ゎその1つの ファイル・フォルダを移動・コピーについて紹介するぜぇ( ゚д゚ )



今までだと


file.renameTo(oldFile)




だったけど
これだと上書きができなかったりする(´・ω・`)

移動する前に削除してもいいけど、削除もまた大変だからな^^;
※前回紹介


んで作ったのだ(´・ω・`)




/**
 * コピー元のパスから、コピー先のパスへ ファイルのコピーを行います。
 *
 * @param srcPath
 *            コピー元のパス
 * @param destPath
 *            コピー先のパス
 * @throws IOException
 *             IOException
 */
public static void copyTransfer(final String srcPath, final String destPath)
  throws IOException {

 copyTransfer(new File(srcPath), new File(destPath));

}

/**
 * コピー元のファイルから、コピー先のファイルへ ファイルのコピーを行います。
 *
 * @param src
 *            コピー元のパス
 * @param dest
 *            コピー先のパス
 * @throws IOException
 *             IOException
 */
public static void copyTransfer(final File src, final File dest)
  throws IOException {

 if (src.isDirectory()) {
  // ディレクトリがない場合、作成
  if(!dest.exists()){
   dest.mkdir();
  }

  String[] files = src.list();

  for (String file : files) {

   File srcFile = new File(src, file);
   File destFile = new File(dest, file);

   copyTransfer(srcFile, destFile);
  }
 } else {
  // ファイルのコピー
  try (FileChannel srcChannel = new FileInputStream(src).getChannel();
    FileChannel destChannel = new FileOutputStream(dest).getChannel();) {
   srcChannel.transferTo(0, srcChannel.size(), destChannel);
  }
 }
}




これなら問題なし(`・ω・´)




移動ならコピーのあとに削除したらいいんだおwwww


この記事も参考にしてみてください。
Java File.renameTo() でエラーになった




2 件のコメント:

  1. 哀れだ。Files.copy()で一発

    返信削除
    返信
    1. コメントありがとうございます。
      Filesは1.7から使えるのは知ってましたが、1.6だとってなってました。その後にFileUtilsを知ったのですがw
      あとFilesはディレクトリの中身をすべてコピーしないと思います。。。

      削除