复制具有特定扩展名的所有文件

时间:2013-03-08 21:13:41

标签: vb.net file

您好我想复制所有带有特定扩展名的文件。我尝试了一些东西,但它没有用。在我的调试过程中,我得到一个异常“路径中使用的非法字符”我猜它不喜欢* .xls的任何建议吗?

首先尝试

 My.Computer.FileSystem.CopyFile("C:\test\test\mxw\*.xls\", "C:\workorder1-23\workorder1-23\mxw\", True)

第二次尝试

For Each f In Directory.GetFiles("C:\test\test\mxw\*.xls\", CStr(SearchOption.AllDirectories))
     If My.Computer.FileSystem.FileExists(f.ToString) Then
          File.Copy("C:\test\test\mxw\*.xls\", "C:\workorder1-23\workorder1-23\mxw\", True)
     End If
Next

2 个答案:

答案 0 :(得分:3)

CopyFile只复制一个文件 您不能将它与通配符一起使用来复制一组文件。 (无效字符可能是通配符) 并且你不应该在文件的末尾添加反斜杠。

因此,让我尝试用此

替换您的代码
For Each f In Directory.GetFiles("C:\test\test\mxw", "*.xls", SearchOption.AllDirectories)
     If File.Exists(f) Then
          File.Copy(f, Path.Combine("C:\workorder1-23\workorder1-23\mxw", Path.GetFileName(f)), True)
     End If
Next

此外Directory.GetFiles有三个参数,一个路径,一个模式和一个用于读取子文件夹的标志

答案 1 :(得分:0)

由于File.Copy不创建目录,所提供的答案仅在目标目录存在时才有效。如果他们不知道,请在File.Copy之前添加一个Create.Directory(f)。

相关问题