1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UiPath】ワイルドカードを使用したファイルの存在確認・ファイルパス取得・ファイルコピー

Last updated at Posted at 2024-08-22

はじめに

UiPathで、ワイルドカードを使用して単一のファイルの存在確認・ファイルパス取得・ファイル名取得・ファイルコピーを行う方法を紹介します。

UiPathの「ファイルの存在を確認」アクティビティや「ファイルをコピー」アクティビティはワイルドカードには対応していないため、その代替として使用することができます。

本記事の方法は、フォルダ内に単一の対象ファイルがあることを想定しています。

フォルダ内に複数の対象ファイルがある場合は、最初のファイルのみ検知し、その他のファイルは検知できません。

例)フォルダ内の「file*.xlsx」を検知する場合
image.png

フォルダ内の複数の対象ファイルを検知する場合は「繰り返し(フォルダー内の各ファイル)」アクティビティを使用します。
image.png

ワイルドカードを使用したファイルの存在確認

'// 構文1
'Dir("ワイルドカードを含むファイルパス") <> ""
Dir("C:\work\file*.txt") <> ""

'// 構文2
'Directory.GetFiles("フォルダパス","ワイルドカードを含むファイル名").Length > 0
Directory.GetFiles("C:\work","file*.txt").Length > 0

image.png

ワイルドカードを含むファイルパスから実際のファイルパス取得

「フォルダパス」と「ワイルドカードを含むファイル名」を次の構文に渡します。

'Directory.GetFiles("フォルダパス","ワイルドカードを含むファイル名")(0)
Directory.GetFiles("C:\work","file*.txt")(0)

image.png

ワイルドカードを含むファイルパスから実際のファイル名取得

'Dir("ワイルドカードを含むファイルパス")
Dir("C:\work\file*.txt")

image.png

ワイルドカードを使用したファイルコピー

応用例として、ワイルドカードを使用したファイルコピーの方法を紹介します。汎用的に使用できるよう、引数を使用するワークフローの形式にしています。

引数

以下のString型の引数を用意します。
strRawFileName:ファイル名(ワイルドカードにも対応)
strSourceDirPath:コピー元フォルダパス
strTargetDirPath:コピー先フォルダパス

変数

以下のString型の変数を用意します。
strFileName:実際のファイル名
strSourceFilePath:コピー元ファイルパス
strTargetFilePath:コピー先ファイルパス

ワークフロー

image.png

'参考)VBAのコードで書くと以下のようなイメージになります。
Sub CopyFile_with_wildcard(ByVal strRawFileName As String, _
                           ByVal strSourceDirPath As String, _
                           ByVal strTargetDirPath As String)
    
    Dim strFileName As String
    Dim strSourceFilePath As String
    Dim strTargetFilePath As String
    
    If Dir(strSourceDirPath & "\" & strRawFileName) <> "" Then
    
        strFileName = Dir(strSourceDirPath & "\" & strRawFileName)
        strSourceFilePath = strSourceDirPath & "\" & strFileName
        strTargetFilePath = strTargetDirPath & "\" & strFileName
        
        FileCopy strSourceFilePath, strTargetFilePath
    
    Else
        'ファイルが存在しない場合の処理
        
    End If
    
End Sub

おわりに

業務でファイル名の末尾のみ変更になった単一のファイルを操作することが多いため、本記事の処理は重宝しています。

皆さんの業務のお役に立てると幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?