Bizrobo! フォルダ内のファイルの有無(ディレクトリループ)

RPA
すー
すー

まいど!福地です

今回のお題はコチラ!

「 所定のフォルダ内にファイルがあるかどうか、また存在した場合はフルパスを取得する 」

です!

よくあるのはファイルのループなんですが、そういえばディレクトリをループは聞いたことがないな・・・と思い、ちょいと挑戦してみました(‘ω’)

やりたいこと

今回の着地点ですが、「ファイルが格納されているフォルダのフルパスを取得」していきたいと思います!

以下のフォルダがあったとします↓

「 C社 」の中に以下のファイルがあります↓

このファイルが保存されているパスを取ってきたいと思います!ちゃんと取れると以下のようになります↓

C:\Users\s.fukuchi\Desktop\会社別\C社\C社_見積書.pdf

「こんなん、余裕じゃね?」と思いますよね?わかる人はすぐわかると思うのですが、私理解が乏しくてこんなところでも苦戦してしまいました( ;∀;)修業が足りんです🤦‍♂️

対象ファイルの設定

さあさあとりあえず実践あるのみ!の前に・・・

すー
すー

変数(Short Text)で「対象ディレクトリパス」「ファイル_フルパス」を作っておこう(^^)/

変数名は任意の名前で結構です。

変数が準備できましたら、今度は「 ループさせたいフォルダ 」までのディレクトリを変数「対象ディレクトリパス」にデフォルトで入れちゃいましょう!

次に「ファイル繰り返し」ステップを入れます↓

ステップの設定画面にて、「ディレクトリ名」を変数「対象ディレクトリパス」に設定し、「ファイル名のパターン」に「.*\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)」を入れます。「ファイル名をここに保存」には変数「ファイル_フルパス」を入れてください。

↓ここ重要です↓

「サブディレクトリを含める」にチェックを必ず入れてください!

ここにチェックを入れることでフォルダをループし、ファイルが入っているかをチェックしてくれます!

正規表現「.*\.()」

今回「ファイル名のパターン」に出てきた「.*\.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF)」ですが、前回出てきた正規表現の1つになります。

意味としては「()」内に記述した拡張子すべてに対応するという意味になります。

正規表現は僕はかなり苦手なんですが、これから徐々に慣れていければと思っています(というか、絶対必要なんで慣れないといけませんが笑)

僕なりの見解でザックリ説明しますと、「.*」はとにかくなんでもいい1文字がまったくないか、連続するかという意味になります。とにかくなんでもいい文字が連続すると言うのは、いろんな文字の連続と言うことになります。

次に続く「 \.(jpg|JPG|jpeg|JPEG|png|PNG|pdf|PDF) 」ですが、ここでは「.」以降の文字(今回は拡張子)を指定しており、「|」で区切ることで「or」の役割を果たしてくれます。

もし「間違ってるよ!」と思われましたら遠慮なくご指摘ください!勉強させていただきます!

取りたい値が入っているかの確認

ステップを進ませると変数「ファイル_フルパス」に値が入っていることを確認してください。ここではあえて「変数の割当」ステップを入れ、ちゃんと値が入っているか確認してみます↓

やりました!無事、取りたかった値が入ってますね!

他のフォルダにファイルが入っていたら、入っているファイルまでのフルパスを取ってきてくれますので、何かと便利です!

更に、前回の正規表現と組み合わせることでファイル名も拾えますので、活用の幅も広がりますね(^^♪

いやー、たった1つのステップで完結できるなんてビックリです笑

以上、地味に調べても出てきづらい内容の紹介でした!

今後も絶妙な内容を投稿していければと思いますので、どうぞ宜しくお願い致しますm(_ _)m

コメント

タイトルとURLをコピーしました