ああああ

フォルダ内のファイル名を取得する_UiPath★Tips

フォルダ内のファイル名を取得する_UiPath★Tips

このようなフォルダがあります。UiPathでフォルダ内のファイル名を取得したい、そんな時に使える .Netのメソッド。

さっそくやってみましょう~

 

流れ的には、フォルダ内のファイルのフルパスを取得→フルパスからファイル名を取得というもの。

まずは、「代入(Assign)」アクティビティをセットします。

 

左辺:取得したものを入れる変数をセットしてみます。(変数に入れなくてもいいんですけどね…)
今回は、arrayFileName ※変数の型はArray of String です。

右辺: System.IO.Directory.GetFiles(フォルダのパス)

今回は、System.IO.Directory.GetFiles(“C:\Users\Admin\Documents\UiPath\2.Tips\フォルダ内のファイル名を取得\ダウンロードフォルダ”) と入れてみましょう。変数でなく直接書くときはダブルコーテーションを忘れずに…

System.IO.Directory.GetFiles(“フォルダのパス”)

は、そのフォルダの中に入っているファイルのフルパスを取得するメソッドです。

 

これで、変数 arrayFileName に、ダウンロードフォルダ内のファイルのパスが入りました。

 

Assignの下に「繰り返し コレクションの各要素(For Each)」そ配置し、その中に「1行を書き込み(WriteLine)」を入れて本当に取れているか試してみましょう。

ForEachのコレクションには、先程の変数 arrayFileNameを、TypeArgumentは String です。

「1行を書き込み(WriteLine)」にはForEachの要素 item を入れます。

実行してみましょう。

ファイルのフルパスが取れました。

 

ただ、欲しいのはフルパスじゃなくてファイル名なので、

 

ファイル名を取得するメソッド

System.IO.Path.GetFileName(ファイルのパス)

 

を使います。

ForEachの中の「1行を書き込み(WriteLine)」に、

System.IO.Path.GetFileName(item)

を記載します。先程試したように、ForEachの要素 itemには取得したファイルのフルパスが入っていますので!

 

実行してみましょう~

ファイル名が取れました。

 

拡張子を除いたファイル名を取得する

拡張子を除いたものを取得したいときは、

System.IO.Path.GetFileNameWithoutExtension(“ファイルのパス”)

 

です。なので、ForEachの中のWriteLineに

System.IO.Path.GetFileNameWithoutExtension(item)

と記載します。

拡張子が除かれてます。

 

特定の文字が入ったファイル名だけを取得する

特定の文字が入ったファイル名を取得するには、特定の文字が入ったファイルのフルパスを取得します。

 

特定の文字が入ったファイルのフルパスを取得

system.IO.Directory.GetFiles(フォルダパス,*特定の文字*)

 

なので、例えば、「済」のファイル名だけを取得したい場合は、「代入(Assign)」の右辺を

System.IO.Directory.GetFiles(“C:\Users\User\Documents\UiPath\2.Tips\フォルダ内のファイル名を取得\ダウンロードフォルダ”, “*済*”)

に変えてみます。

「済」のファイルだけ取得できました~
(WriteLineに書いているのがSystem.IO.Path.GetFileNameWithoutExtension(item)なので、拡張子がありません。)

 

もし、フォルダ内に、.xlsxと.csvが混在している場合、

今回の例だと

System.IO.Directory.GetFiles(“C:\Users\User\Documents\UiPath\2.Tips\フォルダ内のファイル名を取得\ダウンロードフォルダ”, “*済.xlsx”)

と記載すれば、済がある.xlsxファイルのファイル名を取得できます。