YYYYMMDDの箇所が最新のファイルオープン

みなさんお疲れ様です

あるフォルダーに存在するExcelファイルを開きたいですが、同じようなファイル名がある中で、YYYYMMDDの箇所が最新のファイルを指定したいです。

フォルダ上に存在するファイル
あいうえお.xls
あいうえお_20200101.xls
あいうえお_20200224.xls

YYYYMMDD値がなければ、00000000と見做します。
ファイル一覧を取得して、SORTして、最後の配列値が最新のファイルですね。

ファイル一覧は、System.IO.Directory.GetFiles(フォルダ位置、拡張子)で文字列型配列に格納され、
それをList型変数にコンバートし、そのList型でSORTします。その後、文字列配列にToArrayで書き戻し、配列のCount - 1位置を最新のファイルとします。

Directory.GetFilesメソッド

List型

こんにちは

LINQ使うと以下の一文になるかと思います。ご参考まで。

latestFilePathName =  System.IO.Directory.GetFiles(filepath,"*.xls").OrderByDescending(function(x) System.Text.RegularExpressions.Regex.Match(System.IO.Path.GetFileNameWithoutExtension(x),"\d{8}").Value).First

Hanacchiさん
コメントありがとうございます
繰り返しのコレクションの各要素でitemに設定し、その後itemをList型に変換でしょうか?このあたりわかっておりません。。。

YYYYMMDDの箇所が最新のファイルオープン.zip (34.4 キロバイト)

サンプル、作ってみました。
TARGETFOLDER変数に、対象とするフォルダを指定して、実行してみてください

Hanacchiさん
大変助かります!
ありがとうございました
無事最新日付のファイルを特定できました

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.