2

您好,我想复制所有带有特定扩展名的文件。我已经尝试了一些东西,但它不起作用。在我的调试过程中,我得到一个异常“路径中使用了非法字符”我猜它不喜欢 *.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
4

2 回答 2

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也有三个参数,一个路径,一个模式和一个标志来读取子文件夹

于 2013-03-08T21:20:38.830 回答
0

由于 File.Copy 不创建目录,因此提供的答案仅在目标目录存在时才有效。如果没有,请在 File.Copy 之前添加 Create.Directory(f)。

于 2015-02-06T12:14:04.577 回答