CSVやPDFなどのファイルをダウンロードする操作を記録した際に、「No matching file」というエラーが発生することがあります。
このエラーが起こる理由と、その解決方法について解説します。
なぜ「No matching file」エラーになるのか
ファイルをダウンロードすると、まず仮想ブラウザ上に保存されます。
その後、BOTがそのファイルを処理できるようにするためには、仮想ブラウザ上のファイルをBOTのデータとしてコピーする必要があります。
※ファイルのコピー方法については公式ドキュメントをご参照ください。
このコピー処理では、BOTは仮想ブラウザ内から指定されたファイルを探します。
たとえば「sample-basic-04.csv」といったように特定のファイル名を指定している場合、その名前と完全に一致するファイルが必要になります。
しかし、ダウンロードされるファイル名に日付や時間などが自動で付加されるケースでは、毎回ファイル名が変わるため、指定した名前と一致しなくなります。
このような場合、ファイルはダウンロードされていても、BOTがコピー対象のファイルを見つけられず、「No matching file」エラーが発生します。
解決方法
このエラーは、ファイル名にワイルドカード ( * や ? )を使用することで回避できます。
ファイル名を「*.csv」にする事で、拡張子がcsvであればどんな名前のファイルでもコピーできます。
ワイルドカードを使えば、ファイル名の一部が変わっても、該当ファイルを正しくコピーできます。
ワイルドカードとは
テキストや数値などの文字列を表す記号をワイルドカードといいます。
- 「*」(アスタリスク):任意の0文字以上を表す
- 「?」(クエスチョン):任意の1文字を表す
ワイルドカードの使用例
*.csv
ファイル名に関係なく、拡張子がcsvのすべてのファイルにマッチします。
sample*.csv
(前方一致)
「sample」で始まるcsvファイル。
例:「sample-basic-04.csv」「sample250410.csv」
*sample.csv
(後方一致)
「sample」で終わるcsvファイル。
例:「basic-sample.csv」「250410sample.csv」
*sample*.csv
(部分一致)
ファイル名の間に「sample」が含まれるcsvファイル。
例:「basic-sample-04.csv」「250410sample-basic.csv」
??????.csv
(文字数指定)
ファイル名が6文字のcsvファイル。
例:「sample.csv」「test-1.csv」