添付ファイルの名前の更新について

いつも参考にさせていただいております。

outlookの所定フォルダのメールを取得し、
変数:MsgDat に格納します。
次に添付ファイルを保存するのですが、
同じ名前のファイルがあるか判定させたいと思います。

代入で
右;arrFilePath(Arry of string)
左;System.IO.Directory.GetFiles(“添付ファイル”,"*.xlsx")

とし、arrFilePathにファイル名が入っていることまではデバックで確認できました。
この後条件分岐を使う等して、そのファイル名がフォルダ名に存在しているならばファイル名を書き換える方法をご存じの方がいらっしゃったらご協力をお願いします。

Directory.GetFiles で取得したファイル名の配列にファイル名があるかを、contains(“存在確認したいファイル名”) で、 True / False を判定すれば良さそうですが、

GetFilesで取得したファイル名はフルパスなので、
ファイル名だけを取得するように Path.GetFilename(“フルパス名”) で、一個ずつ名前を置換してから判定すれば良さそうです。

yukino様

返答ありがとうございます。
画像までつけていただき、大変見やすかったです。

ファイル名は予測できないので、ロボットに判定させるようにしたいと思っています。

アップいただいた画像を再現しようとしましたが、注意マークが出てしまいました。
aryの変数の型はなにでしょうか?

初心者で申し訳ないのですが、並列繰り返し(コレクションの各要素)には
Arry of string型は使えないのでしょうか。

こんにちは

3日ほど前に別POSTで似たようなサンプル作りましたので以下ご参考まで。
重複を検出するのではなく、日付時間等を付与してファイル名が常に
ユニークになるようにするアプローチです。(添付ファイル名を更新する
ロジックはそのまま使えると思います。)

初心者で申し訳ないのですが、並列繰り返し(コレクションの各要素)には
Arry of string型は使えないのでしょうか。

TypeArgument プロパティを String にしてみてください。

1 Like

Yoichi様

ご返信ありがとうございました。
ロボットをダウンロードし、稼働することができました。

ありがとうございました。

これで問題解決とさせていただきますが、
添付ファイルがxlsxであるのに、拡張子は変わって保存されていました。

yoichi様がForumでお答えになっていたように試してみたのですが、
エラーとなってしまいました。
https://forum.uipath.com/t/outlook/149727

今回保存したいファイルはxlsxのみですので、拡張子をxlsxとして保存する方法をご存じでしたら教えてください。

★並列繰り返し(コレクションの各要素)には
Arry of string型は使えないのでしょうか。
>TypeArgument プロパティを String にしてみてください。

こちらも解決いたしました。
ありがとうございました!

1 Like

こんにちは

すみません。前述のサンプルに誤りがありました。
以下に書き換えてもらえればと思います。(GetExtension(item.Name)の部分です)

System.io.Path.GetFileNameWithoutExtension(item.Name)+"_"+index.ToString+"_"+now.ToString("ddMMyyyyHHmmss")+System.IO.Path.GetExtension(item.Name)

Yoichi様

ご返信ありがとうございます。
こちらに書き換えたところ、ばっちりxlsxで保存されました!
ありがとうございました!

1 Like

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