gorby
(RPA Ninja)
March 30, 2023, 10:43pm
1
UiPath Studio 2023.4.0 Community Editionを利用中の初心者です。
リスト変数を使って指定フォルダ内のファイル一覧をメッセージBOXで表示するWFがうまく動いたため、配列変数を使って指定フォルダ内のファイル一覧をメッセージBOXで表示するWFを作成してみたのですが、うまく動作しません。どこをどう直せば動くでしょうか?
添付画像の
変数「arr_Path」に変数「str_フォルダパス」のファイル一覧を代入は
arr_Path=System.IO.Directory.GetFiles(str_フォルダパス).ToArray
です。
また、配列変数arr_Pathの初期値(New Array(Of String))もおかしいようですので、正しい設定値をご教示ください。
Yoichi
(Yoichi)
March 30, 2023, 11:22pm
2
こんにちは
System.ArrayにはSortするインスタンスメソッドがなく、静的メソッドであるSortを使います。
また、配列変数arr_Pathの初期値(New Array(Of String))もおかしいようですので、正しい設定値をご教示ください。
このケースですと規定値を設定する必要はありません(空欄でOKです)
gorby
(RPA Ninja)
March 31, 2023, 2:01am
3
回答ありがとうございます。ご指示の方法でWF動きました。
ところで、リスト変数を使ってWFを作成したときは、変数lis_Pathに初期値New List(Of String)が設定してあったため、今回変数arr_Pathに初期値設定不要な理由が良く分かりません。初心者のため、分かりやすい説明を期待します。もしかして、単純に「リスト変数を新規作成する場合は初期化が必要だが、配列変数の場合は初期化必要なし。」と覚えれば良いでしょうか?
Yoichi
(Yoichi)
March 31, 2023, 2:16am
4
初期化必要か不要かは後続の処理次第ですので一概には言えません。
GetFilesのように直接配列を返す戻り値を代入するのであれば不要です
List.Add()のように、インスタンスに対して追加のような操作をする場合は、事前に初期化=インスタンス生成が必要です。
gorby
(RPA Ninja)
March 31, 2023, 2:21am
5
ということは、
lis_Path=System.IO.Directory.GetFiles(str_フォルダパス).ToList
のように直接リスト変数を返す戻り値を代入するのであれば、リスト変数lis_Pathの初期化も本来不要だったのでしょうか?
gorby
(RPA Ninja)
March 31, 2023, 2:30am
7
もう1点だけ教えてください。配列の場合はインスタンス生成できないと推測していますが、当たっていますか?
Yoichi
(Yoichi)
March 31, 2023, 2:32am
8
例えば以下のように可能です。
arrStr = new String() {"A","B"}
gorby
(RPA Ninja)
March 31, 2023, 3:25am
9
インスタンス生成と変数パネルへの変数定義(初期値設定)は、変数への初期値設定手法として、どのような状況でも区別なく使えると想像しますが、当たっていますか?
Yoichi
(Yoichi)
March 31, 2023, 3:53am
10
用語が正しくないように思えますが、代入アクティビティでのインスタンス生成と、変数パネルでのインスタンス生成ということでしょうか?
そうであれば基本的には差がないと思います。