可変名ファイルの作成日時を取得したい

■やりたい事
特定のフォルダ内に定期的に作成されるファイルの作成日時を変数に格納したい

■困っている事
ファイルが作成される際ファイル名の後に日時が付与される
(例:ABCyyyymmddhhmmss.zip)
yyyymmddhhmmssの部分をワイルドカードにしたいが上手くいかない。

Directory.GetCreationTimeを使って、式の中でパスの日時部分だけ*に変えて試してみましたが、
「パスに無効な文字が含まれています」とエラーになってしまいます。

.NETの知識は全くない素人ですが、どなたかご教示いただけると幸いです。

こんにちは

やり方はいくつか考えられますが、例えば以下のような感じになると思います。

  1. System.IO.Directory.GetFiles でファイル一覧の取得
  2. 1の結果をイテレート
  3. System.IO.Path.GetFileNameWithoutExtension で拡張子なしでパスを除くファイル名を取得
  4. String.Substringで後ろ14桁を取得

DateTime型が必要なら、4の結果をDateTime.ParseExactすれば良いと思います。

1 Like

ありがとうござます!
追加で教えて頂きたいです。(初歩的な事かもしれませんが…)

3.の部分で画像の様にエラーが出てしまうのですが、型の問題でしょうか?

また、ファイル作成日時の具体的な用途としては、
フロー実行日 = ファイル作成日であれば
後続の処理に進む分岐を作りたいのですが、
4.でファイル名から取得した日付のyyyymmdd部分だけを
変数に格納する良い方法はありますか?

お手数をおかけしますが、よろしくお願いいたしますm(_ _)m

こんにちは

繰り返しアクティビティのTypeArgument をStringにしてみてください。

4.でファイル名から取得した日付のyyyymmdd部分だけを
変数に格納する良い方法はありますか?

桁数が固定なので以下で取得できると思います。

filename.Substring(filename.Length-14,8)
1 Like

無事に出来ました。
ご丁寧に教えて頂き、ありがとうございました!

大変勉強になりました。

1 Like