ファルダ内にあるファイルのリネームについて

いつもお世話になっております。

繰り返し(フォルダー内の各ファイル)アクティビティを使用して複数あるフォルダ内の各ファイルのリネームをしたいと考えています。

①XXXXXXXX.pdf→XXXXXXXX_合格.pdf
→この場合は「_合格」を追加

②XXXXXXXX.aaaa.pdf→XXXXXXXX_合格.pdf
→この場合は「aaaa」を削除、「_合格」を追加

①、②のように既存のフォルダ名(XXXXXXXX)を残して、その後ろに「_合格」を追加して保存をしたいのですが、可能でしょうか?

既存のフォイル名(フルパス)を取得することはできたのですが、一部を残しつつ変更する方法がいまいちわからなかったので質問させていただきます。

ご教示いただけますと幸いです。

HI @a.kmni

You can use For each File in Folder

  • If condition
System.Text.RegularExpressions.Regex.IsMatch(Path.GetFilenameWithoutExtension(CurrentFile.tostring),"\.\D+\.")

True → Rename File
- File → CurrentFile.Tostring
- New File Name → System.Text.RegularExpressions.Regex.Replace(Path.GetFilenameWithoutExtension(CurrentFile.tostring),“.\D+.”,“_合格”)

False → Rename File
- File → CurrentFile.Tostring
- New File Name → Path.GetFilenameWithoutExtension(CurrentFile.tostring)+“_合格”

Note : In Rename File activity , Enable Keep Extension in then and false

Hope this Helps!

Regards
Sudharsan

1 Like

Sudharsan_Ka
こんにちは。

教えていただきありがとうございます!

System.Text.RegularExpressions.Regex
→文字列の操作をする
Path.GetFilenameWithoutExtension
→拡張子無しのファイル名を取得する

以上のように式の認識をいたしましたが間違いないでしょうか?

質問ばかりで申し訳ないのですが、
・Else(CurrentFile.tostring)+“_合格”
→①XXXXXXXX.pdf→XXXXXXXX_合格.pdf これを実現

・条件式(CurrentFile.tostring),“.\D+.”)
・Then(CurrentFile.tostring),“.\D+.”,“_合格”
こちらの2点がどうしてもわかりません・・・
おそらく②XXXXXXXX.aaaa.pdf→XXXXXXXX_合格.pdfを実現するものだとは思うのですが、高度な文字列操作に慣れておらず・・・

ご教示いただけますと幸いです。

いつもお世話になっております。

(CurrentFile.tostring)以降を変えてみました。
削除したい文字列「.aaaa」は統一でしたので、「.aaaa」が含まれているか、
「.aaaa」が含まれている場合は、「_合格」に置換、
「.aaaa」が含まれていない場合は、「_合格」を追加(こちらは教えていただいた通りです)

としましたところ、うまくできました。
あがとうございました!

Condition:

System.Text.RegularExpressions.Regex.IsMatch(Path.GetFilenameWithoutExtension(CurrentFile.tostring),“.aaaa”)

Then:

System.Text.RegularExpressions.Regex.Replace(Path.GetFilenameWithoutExtension(CurrentFile.tostring),“.aaaa”,“_合格”)

Else:

Path.GetFilenameWithoutExtension(CurrentFile.tostring)+“_合格”

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