ファイルのプロパティの内容をチェックしたいことありませんか?
UiPathの標準アクティビティの「ファイル情報を取得」では、プロパティの詳細までは確認できません。
今回、Microsoft の WindowsAPICode.Shell パッケージの ShellFile クラスをもちいて確認ができたので、備忘までに記事化します。
パッケージのインストール
※Studio の「パッケージを管理」で検索してヒットする場合は、3番の手順のみで結構です。
- 「Microsoft-WindowsAPICodePack-Shell」パッケージを Microsoft の nuget.org からダウンロードします。https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Shell/
- Studio のバックステージビュー>設定>パッケージソースを管理で有効なパッケージソースのフィードまたはフォルダに取得した「Microsoft-WindowsAPICodePack-Shell」パッケージ(microsoft-windowsapicodepack-shell.X.X.X.nupkg)を配置します。
- Studio のデザインリボンの「パッケージを管理」より「Microsoft.WindowsAPICodePack.Shell」パッケージをインストールします。
実装サンプル
- ShellObject 型の変数を用意します。(Microsoft.WindowsAPICodePack.Shell.ShellObject)
「代入」アクティビティを配置し、左辺と右辺を次の様に指定します。 左辺:1で作成した変数 右辺: Microsoft.WindowsAPICodePack.Shell.ShellFile.FromParsingName(“{★ファイルパス}”) - 「繰り返し(コレクションの各要素)」を配置し、項目のリストに「{1で作成した変数}.Properties.DefaultPropertyCollection」を指定します。
- 「トライ・キャッチ」>「1行を書き込み」を配置し、次の様にしてプロパティの詳細を出力します。
"CanonicalName:"+currentItem.CanonicalName+" DisplayName:"+currentItem.Description.DisplayName+" PropertyKey:"+currentItem.PropertyKey.ToString+" Value:"+currentItem.ValueAsObject.ToString
補足:「Microsoft.WindowsAPICodePack.Shell」パッケージはインストール済みだが、ShellFile クラスが認識されない場合、対象のXamlファイルの名前空間やアセンブリに次の記述があるかご確認ください。(記述が無い場合、手動で追記してください)
名前空間
<x:String>Microsoft.WindowsAPICodePack.Shell</x:String>
アセンブリ設定
<AssemblyReference>Microsoft.WindowsAPICodePack.Shell</AssemblyReference>
※名前空間やアセンブリの設定は Xaml ファイルの最初に記述があります。編集はメモ帳などでおこなえます。
以上 最後までお読みいただきありがとうございます!