【Blue Prism】フォルダコピーのアクションを作成する

# はじめに
blueprismにはフォルダ,ファイルの操作を行えるVBO「file management」
かなり使用頻度が高いものになりますが、フォルダを中身ごとコピーするアクションがありません。
そこでフォルダコピーのアクションを作成してみることにしました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/168027fc-f455-4871-589e-fa139c13450d.png)

# VBOを複製する
デフォルトのVBOにそのまま追加するのはあまりオススメしません。
コピーしたものにアクションを追加していきます。

## VBO Utility - File Managementを開く
オブジェクト「Utility - File Management」を開きます。
次に[ファイル(F)]→[名前を付けて保存(A)]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/e893d98b-316f-f83f-e53d-cbffd24bb92e.png)

## オブジェクトの名前を設定し保存する
以下の画面が表示されたら、オブジェクトの名前を入力し
保存先のフォルダーを選択します。
今回のファイル名は**Utility - File Management - Extended**にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/093b2690-cd4a-8946-6579-ebefe3fe78e2.png)

# アクションを追加する
複製が完了したらアクションを追加します。
今回のアクション名は**Copy Folder**にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/c5a8fa89-f7be-0c93-b16c-ab8f08570317.png)

## 開始プロパティを設定する
開始ステージの入力プロパティを以下で設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/49e4d92b-4d61-f534-308e-ef256741b68b.png)


|  データ名  |  データ型  |  値  |
| ---- | ---- | ---- |
|  SourcePath  |  テキスト  | Source Path |
|  DestinationPath  |  テキスト  | Destination Path |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/737cb6bb-c29f-62d1-6643-0899b4e1c23a.png)

## コードステージを配置する
次にコードステージを配置し、ステージ名を**copy folder**にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/83e58149-246b-39b1-45c5-c87e781a5963.png)

### 入力・出力プロパティを設定する
コードステージのプロパティを開き、入力・出力を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/11fae6ab-0d76-95c0-2310-73e43469d1c0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/23e3c47f-7cd6-4a6a-d261-4d4f230af8af.png)

| 入出力 |  データ名  |  データ型  |  値  |
| ---- | ---- | ---- | ---- |
| 入力 |  SourcePath  |  テキスト  | Source Path |
| 入力 |  DestinationPath  |  テキスト  | Destination Path |
| 出力 |  Success  |  フラグ  | Success |

### コードを実装する
入出力のプロパティが設定できたら、次はコードを実装します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/ba090378-aa34-1656-48ed-dcb5400acc37.png)

今回は以下のコードを実装します。コピペで大丈夫です！
```
Try
    My.Computer.FileSystem.CopyDirectory(SourcePath, DestinationPath, True)
    Success = True
Catch e As Exception
    Success = False
End Try
```

実装ができたら赤枠の「チェックコード」ボタンをクリックして、エラー表示が無いか確認します。
![チェックコード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/35946f63-a563-496c-9f3b-7771a4a10247.png)

以下のようにエラーが出ていなければOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/e05ea63f-87b4-1ddb-daac-ed1185331e5f.png)

# 実行してみる
これで実装完了しましたので、実行してみましょう。
今回は以下の「テスト1」フォルダをコピーしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/f58abd76-20e1-e5f1-452b-f150b054c3ae.png)

中身には以下のファイルが配置されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/4e1ed148-cc1f-9cd1-eafa-083a317eaff7.png)

## コピー元,コピー先のフォルダパスを設定する
フォルダの準備ができたら、フォルダパスを設定します。
|  データ名  |  値  |
| ---- | ---- |
|  Source Path  | コピー元のフォルダパス |
|  Destination Path  | コピー先のフォルダパス |

コピー元には「テスト1」フォルダのパスを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/5ede92fe-3c87-aff2-4922-5f2be4ac6d3b.png)

コピー先はフォルダ名を「テスト2」として、パスを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/3ae7abb1-6072-48fe-956c-1487a951a5c9.png)

## 結果
これで必要な設定は終わったので、実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/009374b7-6fae-bf7c-6729-7b1f38df6ce7.png)

実行完了しました。ではフォルダを確認してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/42c82187-96d0-5063-9d3a-06323b8227a5.png)

フォルダ2が作成されていますね！
中身のファイルもコピーされています！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/736baa01-4574-a8e2-932a-4208f070249c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660650/42030e98-12c4-5f1d-cc71-5b5ed7ca5bbb.png)

# まとめ
いかがだったでしょうか？
今回はフォルダコピーのアクションを作成してみました。
コードステージを活用すれば、フォルダ・ファイル操作のアクションを追加で作成できます。

File操作のアクションについてまとめたものも今後記事にしていきますのでそちらも見ていただけると嬉しいです！