ホーム > プログラミング > Windows プログラミング > ディレクトリ(フォルダ)をコピーするには

ディレクトリ(フォルダ)をコピーするには

解説

Win32API に CopyFile というファイルをコピーする関数はありますが、ディレクトリをコピーする関数はは今のところ標準では用意されていないので、自作します。

実装方法としては、
・ディレクトリの中のファイルをコピーする処理を作成する方法
・シェル関数を用いる方法
の2つの実現実装方法があります。(他にもあるのかもしれません。)

ディレクトリの中のファイルをコピーする処理を作成する方法の実装内容としては、

  1. CreateDirectory を用いてコピー先のディレクトリを作成します。
  2. コピー元のディレクトリ内のすべてのファイルおよびディレクトリを検索します。
  3. ファイルならば CopyFile を用いてコピーし、ディレクトリならば本関数を再起的に呼び出してコピーします。

シェル関数を用いる方法の実装内容としては、

  1. シェル関数の仕様に従い、コピー元およびコピー先のディレクトリ名の終端を"\0\0"にします。
  2. シェル関数はエクスプローラが行う処理を実行するAPIなので、エクスプローラでディレクトリのコピーを行うときに出るダイアログが出ないようにフラグを設定します。
  3. シェル関数を呼び出し、ディレクトリのコピーを行います。

サンプルコード

ダウンロード

ヘッダーファイルとソースファイル

サンプルプロジェクト


ご意見、ご感想、ご質問、ご要望等は、「コメントを投稿する」もしくは「ホーム > コンタクト」よりお願いいたします。
内容の誤り、誤字脱字、リンクミスなどの問題点を発見された場合には「コメントを投稿する」もしくは「ホーム > コンタクト」より連絡していただけると幸いです。


Copyright (c) 2005-2018 Nobuki HIRAMINE All rights reserved.