UiPathでフォルダコピーをする方法!メソッドを呼び出しアクティビティで解決!

はじめに

UiPathでプログラムを作成するときによく行うファイルコピー操作ですが、フォルダに対しても同じようにコピーをしたい!と思ったことはないでしょうか。

UiPathにはファイルコピーアクティビティが用意されていますが、フォルダコピーに対しては専用のアクティビティは用意されておらず、困った!という人も多いと思います。

uiPath-ファイルをコピー例

「ファイルをコピー」アクティビティは存在するが、「フォルダ」をコピーするためのアクティビティは存在しない!

今回はUiPathでファイルと同じようにフォルダコピーをする方法をご紹介します!

実際にやってみましょう!

サンプルとして「コピー元フォルダ」をフォルダごと「コピー先フォルダ」にコピーするプログラムを作成します。

uiPath-フォルダごとコピーするイメージ

今回のプログラムでは.NET Frameworkから提供されている「FileSystem.CopyDirectory メソッド」を利用して作成します。

FileSystem.CopyDirectoryメソッド

ディレクトリの内容を別のディレクトリにコピーするメソッドです。
パラメータとして「コピーするディレクトリ」と「ディレクトリの内容のコピー先の場所」を指定することで、ディレクトリの内容をコピーすることができます。

引用元 :https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.fileio.filesystem.copydirectory?view=net-5.0

※ここでいう「ディレクトリ」とは「フォルダ」のことを指しています。

① 変数を設定する

まず「コピー元フォルダ」と「コピー先フォルダ」のフォルダパスを格納する変数を作成します。
ここでは、「コピー元フォルダパス」と「コピー先フォルダパス」の2つの変数を作成します。

変数「コピー元フォルダパス」には「コピー元」となるフォルダのパスをそのまま設定します。
変数「コピー先フォルダパス」には「コピー先」となるフォルダのパスに「コピー元」となるフォルダ名を追加して設定します。

uiPath-フォルダごとコピー変数
 
uiPath-フォルダごとコピー変数値設定
「コピー元のフォルダ名」を追加する理由は?
「FileSystem.CopyDirectory メソッド」はフォルダの中身を別のフォルダにコピーするメソッドです。
そのため、「コピー元のフォルダ名」を「コピー先のフォルダパス」に追加しない場合、「コピー元のフォルダ」の中身だけが「コピー先のフォルダ」にコピーされます。
今回は「コピー元フォルダ」ごとコピーするプログラムを作成するため、変数「コピー先フォルダパス」に「\」と「コピー元フォルダ」の名前を追加しています。
フォルダコピー-フォルダ名を追加しなかった場合の例

② 「メソッドを呼び出し」アクティビティを配置する

次に「メソッドを呼び出し」アクティビティを配置します。
「メソッドを呼び出し」アクティビティを配置後プロパティを開き、以下3項目に値を設定します。
(他の項目は設定内容を変更する必要はありません。)

ターゲット型
ターゲット型に「Microsoft.VisualBasic.FileIO.FileSystem」を指定します。
型の一覧に表示されない場合は「型の参照」を押下し、「参照して.Netの種類を選択」ウィンドウにて「FileSystem」と検索すると設定することができます。

uiPath-メソッドを呼び出し-ターゲット

メソッド名
「FileSystem.CopyDirectory メソッド」を使うため、「CopyDirectory」を入力します。

uiPath-メソッドを呼び出し-メソッド名

パラメータ
「FileSystem.CopyDirectory メソッド」に必要な引数を「パラメータ」ウィンドウの上から順に設定します。
「FileSystem.CopyDirectory メソッド」は第1引数に「コピー元のフォルダパス」を、第2引数に「コピー先のフォルダパス」を設定する必要があるため、以下の順番通りに値を設定します。

uiPath-メソッドを呼び出し-パラメーター
 
注意事項

コピー元のフォルダパスとコピー先のフォルダパスの記載する順番を間違えないように注意してください!

③ 実行する

以上でフォルダコピープログラムの準備は整いました!
正しくコピーされたことを確認するために、今回は「GetFilesメソッド」を使ってコピー先フォルダのファイルパス一覧を出力するよう、以下の処理を追加します。

サンプルプログラムフロー

実際に実行してみると、出力コンソールに「コピー先フォルダ」のファイル一覧が出力され、「コピー先フォルダ」にも「コピー元フォルダ」がコピーされたことが確認できました!

サンプルプログラム実行結果
サンプルプログラム実行結果-エクスプローラー

今回フォルダの中身はファイルだけでしたが、この方法であればコピー元となるフォルダのサブフォルダやサブフォルダの中身もすべてコピーすることができます!
フォルダコピーにお悩みの場合は、是非試してみてください!

まとめ

今回はアクティビティが存在しないフォルダのコピー方法についてご紹介いたしました!
「メソッドを呼び出す」アクティビティは.NET Frameworkで提供されているメソッドを使うことができるので、フォルダコピー以外にも様々な処理を行うことができます。

その他の様々な処理についても今後当サイトのブログで紹介していこうと思いますのでよろしくお願いいたします!

NDKのRPA・AI-OCRサービス

NDKでは、UiPathを使用したRPAサービスや、自動文字認識を行うAI-OCRサービスを提供しております。

RPA・AI-OCRを利用すれば、単純作業などの面倒な仕事をロボットに任せることができます。

 

こちらのボタンより開くことができる活用事例ページでは、RPAやAI-OCRを実際に導入するとどのようなことができるかがわかりますので、是非クリックしてみてください!

 

お問合せフォームはこちらです。お気軽にご相談ください。

RPA・AI-OCRサービスのお問い合わせ

RPA・AI-OCRサービスに関する、導入のご相談、資料請求、お見積もりなど、
小さなことからお気軽にお問い合わせください!

「UiPathでフォルダコピーをする方法!メソッドを呼び出しアクティビティで解決!」へのコメント

コメントはありません

コメントを残す

メールアドレスが公開されることはありません。