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