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

Vb6 带有通配符的FileSystemObject CopyFile复制扩展名超过指定长度的文件,vb6,fso,Vb6,Fso,源文件夹中有3个文件: a.csv b.csv a.csv\u备份 我希望*.csv只复制a.csv和b.csv,但它也复制a.csv\u备份 代码: 您会发现,每个文件都有一个“短名称”(旧的DOS 8.3标准),以便与真正的旧软件兼容(其中一些软件仍在使用)。您的文件a.csv\u backup还有另一个名称(可能类似于a~1.csv,但它可能是关于任何内容的),它只使用扩展名的前三个字母。您可以运行dir/x查看每个长名称旁边的短名称 进一步阅读: 关于超级用户: 来自Raymond

源文件夹中有3个文件:

  • a.csv
  • b.csv
  • a.csv\u备份
我希望
*.csv
只复制
a.csv
b.csv
,但它也复制
a.csv\u备份

代码:


您会发现,每个文件都有一个“短名称”(旧的DOS 8.3标准),以便与真正的旧软件兼容(其中一些软件仍在使用)。您的文件
a.csv\u backup
还有另一个名称(可能类似于
a~1.csv
,但它可能是关于任何内容的),它只使用扩展名的前三个字母。您可以运行
dir/x
查看每个长名称旁边的短名称

进一步阅读:

  • 关于超级用户:
  • 来自Raymond Chen(在Windows上工作了很长时间的开发人员):(关于许多应用程序内部使用的API,用于按模式查找文件)
  • 维基百科:
就解决方案而言,您要么需要备份扩展名不共享您正在搜索的内容的前三个字符(因此请改用类似
.backup\u csv
的内容),要么需要在您的系统上使用备份扩展名(这可能会破坏旧的应用程序)

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