Lesson2では分岐について学びました
ここではPC操作において頻度の高いファイル操作について学習していきます。
ファイル操作では、各種ファイル・フォルダのパス取得が必要になります。
下記エクスプローラーの機能が役立ちますので活用してください。
削除
を削除してください。
※フォルダは一例です。任意のフォルダに事前にTest.pdfを作成しておきます。
削除(Delete)アクティビティを接続します。
削除アクティビティのプロパティを設定します。
プロパティの[ファイル]-[パス]に、"C:\Users\osana\OneDrive\デスクトップ\Test.pdf"
を入力します。
最低限これだけで動きますが、
ファイル操作が完了したことのレスポンスが欲しいです。
さらにメッセージボックスを接続し、
プロパティの[入力]-[キャプション]に"処置を完了しました"を入力します。
実行します。
正常にファイルの削除が完了しました。
パスで指定したファイルがない場合
このまま実行すると、下の様に該当のファイルが無いとエラー表示されます。
削除対象となるなるファイル有無によって柔軟な動作をさせるには、次の二つがあります。前後の処理に合わせて使い分けてください。
エラー発生を無視する方法
削除アクティビティのプロパティで
[共通]-[エラー発生時に実行を継続]
ファイルがあって削除しても、ファイルが無くて処理をしなくても
同じ結果が表示されます。
ファイル有無を事前に確認して処理する方法
「パスの有無を確認」アクティビティを接続し、
プロパティの
[入力]-[パス]に"C:\Users\osana\OneDrive\デスクトップ\Test.pdf"
[出力]-[要素の有無]に変数定義でFile_EXISTを設定します。
これにより
該当のファイルがある場合にはFile_EXISTがTRUE
該当のファイルがない場合にはFile_EXISTがFALSE
で返されます
次に分岐を設定します。「フロー条件分岐」のアクティビティを接続し、
プロパティの
[その他]-[条件]に File_EXIST=TRUE
と記述します。
ファイルが存在する側の分岐
「削除」アクティビティを接続し、
プロパティの[ファイル]-[パス]に対象のファイルを記入します。
「メッセージボックス」アクティビティを接続し、
プロパティの[入力]-[テキスト]に"処置を完了しました"を記入します
ファイルが存在しない側の分岐
「メッセージボックス」アクティビティを接続し、
プロパティの[入力]-[テキスト]に"削除対象のファイルが存在しませんでした"を記入します。
実行結果
次の様になります。
ファイルがある場合、そのファイルを削除して次を表示します。
ファイルがない場合、次を表示します。
複写
お題です
D:\Toフォルダにコピーします。
なお、コピー先に同名ファイルがある場合は上書きします。
※事前にフォルダやファイルを作成してからトライしてください
コピー対象のファイルが無い場合の処置は先述の「ファイル有無を事前に確認して処理する方法」を採用します。
「パスの有無を確認」アクティビティを接続し、
プロパティの
[入力]-[パス]に"D:\From\DATA.CSV"
[出力]-[要素の有無]に変数定義でFile_EXISTを設定します。
これにより
該当のファイルがある場合にはFile_EXISTがTRUE
該当のファイルがない場合にはFile_EXISTがFALSE
で返されます
次に分岐を設定します。「フロー条件分岐」のアクティビティを接続し、
プロパティの
[その他]-[条件]に File_EXIST=TRUE
と記述します。
ファイルが存在する側の分岐
「ファイルをコピー」アクティビティを接続し、
プロパティ
[オプション]-[上書き]に✔を入れます。
[保存先]-[保存先]に、複写先である"D:\To\DATA.CSV"を
[元ファイル]-[パス]に、複写元である"D:\From\DATA.CSV"を記入します。
「メッセージボックス」アクティビティを接続し、
プロパティの[入力]-[テキスト]に"処置を完了しました"を記入します
ファイルが存在しない側の分岐
「メッセージボックス」アクティビティを接続し、
プロパティの[入力]-[テキスト]に"コピー対象のファイルが存在しませんでした"を記入します。
実行するとFromにあったファイルが、Toに複写されます。
複写の応用編
先のお題に続いて
次のお題に改造します。
D:\Toフォルダに本日の日付をつけてコピーします。
なお、コピー先に同名ファイルがある場合は上書きします。
※事前にフォルダやファイルを作成してからトライしてください
つまり、複写元のDATA.CSVを複写先にDATA_YYYYMMDD.CSVで保存します。
データを蓄積する場合などに使います。
少し難易度は高いですが、使えるテクニックなので是非マスターしてほしいです。
まずは、今日の日付を得る準備をします。
変数パネルを表示します。
[変数の作成]をクリックします。
次の様にTODAYという名前の変数を設定します。
規定値に
System.DateTime.Now.ToString("yyyyMMdd")
Uiathでは定義しなくても既に割り当てられているシステム変数というものが使え、そのシステム変数の中にDataTime.Nowというものがあります。DataTime.Nowは現在の日時を持っていますが、これをYYYYMMDD配置の文字列として新たな変数に設定するという処置をしています。
変数の概念はUiPath習得の一つのハードルと思いますが、人に教えるのもなかなか難しい内容です。変数に関しては別途特集を組みますので、ここは「この構文で今日の日付を取得できる」レベルの認識でも構いません。
次の様にFromフォルダにはDATA.CSVがある状態
Toフォルダには何もない状態
で実行します。
次の様に日付が付いたファイル名が作成されます。
移動
お題です
D:\Fromフォルダから
D:\Toフォルダに移動します
※事前に以下の様にファイルおよびフォルダを作成しておきます。
処置完了の確認メッセージは不要です。
「ファイルを移動」アクティビティを接続します。
プロパティの
[保存先]-[保存先]に移動先のパスを入力します。
[元ファイル]-[パス]に移動元のパスを入力します。
実行します。次の様にファイルが移動されます。
Renameへの応用
UiPathにはRenameのアクティビティはありませんが、この「ファイルを移動」アクティビティでRenameが可能です。
下のD:¥To内のDATA.CSVをDATA_OLD.CSVに変更します
以下の様に「ファイルを移動」アクティビティのプロパティを設定します。
移動のアクティビティですが、フォルダ名は同じでファイル名だけを変えています。
実行します。
次の通りフォルダはそのままで、ファイル名だけが変わりました
ファイル操作はこれで終わります。
コメント