はじめに
特定のフォルダ内に格納されている更新日時が最新のファイルを取得するのを
仕事で使ったのでメモとして残します。
この記事は、UiPath Advent Calendar (produced with UiPath Friends) Advent Calendar 2022の3日目の記事です。
結論
GetFileでフォルダ内のファイル名を配列で取得後Listに変換(変換しているのはFirstプロパティを使いたかったからです)、更新日時(LastWriteTime)で降順(Descending)で並べ替えて、その最初(First)のFileNameを出力しています。
Path.GetFileName( (Directory.GetFiles(FolderPath,"*.txt").OrderByDescending(Function(x) New FileInfo(x).LastWriteTime)).toList.First)
今回の例
今回は例として、こんな感じのファイルたちの中から、最新のファイルを取得します。
なんだこのファイル管理!?という感じですが、あくまでも例としてみてください。
今回とってきたいのは、14:42更新の「テキスト(最新).txt」です。
(画像内赤線部分)
今回の実装
実装は非常にシンプルです。
ファイル名のログ出すだけ。
メッセージの中身
くどいですがもう一度載せます。
Path.GetFileName( (Directory.GetFiles(FolderPath,"*.txt").OrderByDescending(Function(x) New FileInfo(x).LastWriteTime)).toList.First)
実行結果
意図したファイル名(更新日時が最新である)ファイル名を取得できました。
おわりに
ファイル名だけでなくファイルのフルパスを取得したい場合はGetFileNameを外せばフルパスが取得できます。
また、今回は例としてテキストファイル(.txt)で実施しましたが、拡張子指定部分を変更すればExcelやPDFなども指定可能です。