Skip to content

【UiPath】フォルダ内のファイル処理について

Posted in RPA, and UiPath

RPAで自動化を行う際、特定のフォルダに処理に使うファイルを置いて、そこからすべて取得して処理を行いたいというケースは非常に多いと思います。


例えば、スキャナーでスキャンしたファイルがフォルダに格納されるからそれ読み取って…とか、社内手続きのエクセル申請書が特定のフォルダにあるからそこからすべて読み取ってシステム登録とか…..意外と気が付きにくいですが社内業務のほとんどがこの繰り返し処理を行っています。


そこで、この記事ではUiPathを利用してフォルダ内のファイル処理を行う方法を説明します。

利用するアクティビティ

フォルダ内のファイルを取得する際は、専用のアクティビティがあるわけではなく既存のアクティビティ+VB.NETという文を組み合わせる必要があります。


後者については、なれていない方にとっては難しく考えてしますかもしれませんが、ほとんど形は決まっているので英語の構文だと思って暗記してしまえば問題有りません。

(英語が苦手な方は、すみませんが頑張ってください….)


まず、既存のアクティビティですが【繰り返し(コレクションの各要素)】を使用します。



このアクティビティは、”繰り返し”となっているように、渡されたコレクション(集まり)を一つずつ取り出し繰り返し処理を行います。

そのため、フォルダ内のファイル処理を行う場合は、そのフォルダ内のファイルのコレクションを渡してあげる必要があります。


このときVB.NETの文を書く必要があるのですが、それは次のようになります。


//フォルダーパスには、対象のフォルダパスを入力
Directory.GetFiles("フォルダーパス")

詳しい解説は、省きますが上記をコレクションに設定すればフォルダ内のファイルをすべてまとめて取得する事ができます。


また、上記は最もシンプルな書き方であり他にも、「特定の拡張子のもののみ取得する」「サブフォルダ内のファイルも取得する」等設定をすることができます。

詳しく知りたい方は、次のMicrosoftの公式サイトを参考にしてみてください。


Microsoft -Directory.GetFiles メソッド

利用方法

  1. 対象のフォルダパスを【繰り返し(コレクションの各要素)】に設定する
  2. 【繰り返し(コレクションの各要素)】の【TypeArgument】をString型に設定する
  3. 【繰り返し(コレクションの各要素)】内で、要素を利用しファイルを扱う

利用するアクティビティで解説したとおり【繰り返し(コレクションの各要素)】のコレクションにVB.NETを利用し対象とするフォルダパスを設定します。


あわせて、プロパティパネルの【TypeArgument】をString型にしておきます。

理由としては、フォルダ内のファイルを実際のデータとして扱うのではなく、あくまでそのファイルまでのパスを共有してあげるという使い方をするため文字列のほうが都合が良いためです。


そして、取得したファイルのですが、繰り返しで行われる1ファイル1ファイルが順番に【要素】(初期値はitem) 格納されます。


次の例は、フォルダ内のファイルを取得し、そのファイルパスをメッセージボックスを利用し表示する最もシンプルな例になります。



実行をすると、取得したファイルの絶対パスが表示されるはずです。



他にも、既存のアクティビティ【ファイルを移動】や【フィルをコピー】等様々な利用用途が考えられます。


まとめ

以上、ファルダ内のファイルを取得する方法についての記事でした。


既存のアクティビティのみでは対応できない部分もあり、戸惑った方もいたのではないでしょうか。

もし、ここが分からない等あればコメントへお願いします。

また、UiPathで「これどうやるの???」というご質問も歓迎です。


では。

参考

Microsoft -Directory.GetFiles メソッド

.NET プログラマーのためのUiPath Tips集

Be First to Comment

コメントを残す