UiPathでフォルダ内のファイル一覧(リスト)を取得する方法
今回は、UiPathで「フォルダを選択(SelectFolder)」などを使用してフォルダパスを取得し
フォルダ内にあるファイル一覧を取得する方法についてご紹介します。
事前準備
今回はデスクトップに「test」というフォルダを作成し、test(n).txt(nは1から連番で)を作成してから実行しています。
以下は環境を作るためのbatファイルの中身です。
@echo off
set mkdir=%USERPROFILE%\Desktop\test
set /P mkval="作成するファイル数を入力:"
set /a mkval=mkval-1
md %mkdir%
:loop
set /a i+=1
copy nul %mkdir%\test%i%.txt
if %i% leq %mkval% goto loop
最初に「作成するファイルを入力:」と表示がされるので、作成したい数を入力してください。
ここでは、5つ作成して実行しています。

変数の作成
変数名 | 変数の型 | 既定値 |
---|---|---|
FolderPath | String | |
FileList | List(String) | New List(of String) |
上記の表の通りに変数を作成してください。

フォルダパスを取得する
まず「フォルダを選択」を配置します。
アクティビティ検索欄に「フォルダを選択」と入力するかシステム
-> ダイアログ
-> フォルダを選択
から配置してください。
配置が完了したら、右側のプロパティ欄で「出力」にFolderPath
と入力してください。

ファイル一覧(リスト)を取得する
次にファイル一覧を取得するために「代入」を配置します。
デフォルト設定ではお気に入りにあるのでそこから配置してください。
配置が完了したら、FileList = System.IO.Directory.GetFiles(FolderPath).ToList
となるように入力します。

System.IO.Directory.GetFiles(FolderPath)でファイル一覧をArray形式で取得してくるためList形式で取得したい場合は最後に.ToListを入力して変換する必要があります。
これで、ファイル一覧を取得することが出来ました。
テスト
ファイル一覧が取得できているか確認するために、「繰り返し (コレクションの各要素)」を配置します。
アクティビティ検索欄に「繰り返し (コレクションの各要素)」と入力するかワークフロー
-> コントロール
-> 繰り返し (コレクションの各要素)
から配置してください。
配置が完了したら、右側のプロパティ欄で「TypeAugment」はString
を選択し、「コレクション値」にFileList
と入力してください。

入力が完了したら、「本体」内に「1行を書き込み」を配置します。
デフォルト設定ではお気に入りにあるのでそこから配置してください。
配置が完了したら、item
と入力します。

最終的なフロー図は以下のようになります。

それでは、実行してみましょう。

フォルダ内にあるファイル一覧が全て表示されました。
コメント