同名ファイルの新旧の比較は可能でしょうか?
いつも参考にさせていただいています。
WinActorで可能かどうか、できるのであればどういった方法があるのかの質問です。
【質問】
フォルダAの中に「AAAA.pdf」が入っています。
フォルダBの中にも「AAAA.pdf」が入っています。
フォルダCの中にも「AAAA.pdf」が入っています。
WinActorで、こういった別フォルダ内の同名ファイルを比較して、どれが一番新しいPDFかを判断して最新のものだけを
収集することは可能なのでしょうか?
フォルダはA,B,Cの3つだけではなく、100個ぐらいある場合もあり、その中から同じ名前を比較して、最新のものだけを収集することになります。
こういったことができるとしたら、どういったやり方があるのか教えていただけますでしょうか???
以下のようなスクリプトではいかがでしょうか?指定されたフォルダーの検索(サブフォルダーを含む検索)を行い、更新日時の新しいファイルのパスを1つ抽出します。
Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
ReDim FilePathList(0)
Call FindFile(!対象のフォルダ!, !ファイル名!)
If UBound(FilePathList) > 0 Then
ReDim Preserve FilePathList(UBound(FilePathList) - 1)
End If
SetUMSVariable $最新ファイルパス$, GetNewerFile()
Sub FindFile(strFolderPath, strFileName)
For Each Folder In FileSystemObject.GetFolder(strFolderPath).SubFolders
For Each File In Folder.Files
If LCase(File.Name) = LCase(strFileName) Then
FilePathList(UBound(FilePathList)) = File
ReDim Preserve FilePathList(UBound(FilePathList) + 1)
End If
Next
Call FindFile(Folder, strFileName)
Next
End Sub
Function GetNewerFile()
Dim objFile
For Each File In FilePathList
Set objFile = FileSystemObject.GetFile(File)
If IsEmpty(tmpDate) Or objFile.DateLastModified > tmpDate Then
tmpDate = objFile.DateLastModified
GetNewerFile = File
End If
Next
End Function
ライブラリに収録されている「13_04 ファイル検索」は1つのフォルダーの設定でかつ1階層のみの検索対象となりますので、今回のように100以上のフォルダーを対象とする場合には向かないかもしれません。