带通配符的FileSystemObject CopyFile复制扩展名超过指定长度的文件

时间:2018-07-13 16:29:15

标签: vb6 fso

在源文件夹中有3个文件:

  • a.csv
  • b.csv
  • a.csv_backup

我希望*.csv仅复制a.csvb.csv,但它也复制a.csv_backup

代码:

Dim oFso As New Scripting.FileSystemObject
oFso.CopyFile "c:\temp\*.csv" "d:\temp\"

1 个答案:

答案 0 :(得分:4)

您会遇到这样一个事实,每个文件都有一个“短名称”(旧的DOS 8.3标准),以与真正的旧软件(其中一些还在使用)兼容。您的文件a.csv_backup也以另一个名称(尽管可能与a~1.csv类似,尽管也可能涉及任何东西)而闻名,该名称仅使用扩展名的前三个字母。您可以运行dir /x在每个长名称旁边查看短名称。

进一步阅读:

就解决方案而言,您要么需要您的备用扩展名以不共享您要搜索的内容的前三个字符(所以请改用.backup_csv之类的字符),或者您需要{{3} }(可能会破坏旧的应用程序)。