CopyFile について

ファイルのコピーって、必要ですよね!というわけで、コピーしちゃいますw

■CopyFileメソッド

広告

そのままですけど、ファイルをコピーするためのメソッドです

ワイルドカード文字「*」を使用して複数ファイルのコピーも可能です

フォルダのコピーは別メソッドなので、それは別で紹介します!

・構文

構文は以下の通りです

object.CopyFile source, destination, [ overwrite ]

objectはFileSystemObjectのオブジェクトです

・パラメータ

メソッドのパラメータは以下の通りです

  • source … コピーするファイルのパス
  • destination … コピー先のフォルダやファイルのパス
  • [overwrite] … 既存のファイルを上書きするかどうか

sourceには、コピーするファイルのパスを指定、ワイルドカード文字列をしようすることで複数ファイルを指定します(必須項目)

destinationには、コピー先フォルダやファイルを指定できますが、ワイルドカード文字列は使用不可です(必須項目)

[overwrite]には、コピー先フォルダにコピー元のファイルと同名ファイルがある場合に、上書きするかを設定します

True : 上書きする【デフォルト】、False : 上書きしない

・戻り値

メソッドの戻り値は以下の通りです

  • なし

コピーが成功したかどうかを戻り値で受け取りたいところですけど、ないんですってー!

広告

■例

・簡単なサンプル

①CopyFileのサンプル

②呼び出し元関数のサンプル

③簡略化したCopyFileのサンプル

・説明

呼び出し元関数のサンプルにて、想定できそうなパターンを網羅したつもりです!

以下のような階層にファイルが存在しているとして、サンプルを実行します

実行した結果は以下のようにイミディエイトウィンドウに表示されます

(1)~(3)と(6)~(8)が正常終了ということがわかります!

読み取り専用ファイルに対する動作は、(4)と(13)のように[overwrite]によってエラーが異なります

・・(4)と(13)かぁー不思議と縁起の悪い番号に割り振られたw

実行結果後の階層はこうなります!

(6)ではフォルダではなく、ファイルが作成されたことが確認できますね

(14)では”Sample.csv”の上書きコピーが許可されずエラーとなったため、”Sample1.csv”はコピーされなかったことがわかりますね

・注意点

  • コピー先ファイルに上書きを許可しても、コピー先ファイルが読み取り専用の場合は、ファイルコピーがエラーになる
  • コピー先の指定にはワイルドカード文字列は指定できない
  • コピー元ファイルのワイルドカード文字列は、ファイル名や拡張子(最後のパス コンポーネント)にのみ使用可能
  • コピー先はパスの区切り文字で終わっている場合に、既存フォルダと見なされる
  • コピー先パスを区切り文字で終えずに既存フォルダを指定した場合は、書き込みエラーになる
  • 複数ファイルのコピー時にエラーが発生したら、続きはコピーされない

・その他

TextStreamオブジェクトについて書くつもりでしたが、ファイルのコピーが意外と大事だったので、先に調べました!

あと、他のメソッドで記載したような注意点は、共通的なものでも何度も書かないことにしますので、他のメソッドも是非確認してくださいね!

ではでは

シェア
広告

やもす ʕ•͡-•ʔ

のんびり!のほほん!がモットーです!w 蕎麦食いたい ライブ行きたい 暑いの嫌い