2

こんにちは私は特定の拡張子を持つすべてのファイルをコピーしたいと思います。私はいくつかのことを試しましたが、うまくいきません。デバッグ中に、「パスで使用されている不正な文字」という例外が発生します。*。xlsの提案が気に入らないと思いますか?

初挑戦

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

2回目の試行

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は1つのファイルだけをコピーします。
ワイルドカードを使用してファイルのグループをコピーすることはできません。(無効な文字はおそらくワイルドカードです)そして、ファイルの最後にバックスラッシュを追加しないでください。

だから私はあなたのコードをこれに置き換えてみよう

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には、パス、パターン、およびサブフォルダーを読み取るためのフラグの3つのパラメーターがあります。

于 2013-03-08T21:20:38.830 に答える
0

File.Copyはディレクトリを作成しないため、提供された回答は、ターゲットディレクトリが存在する場合にのみ機能します。そうでない場合は、File.Copyの前にCreate.Directory(f)を追加します。

于 2015-02-06T12:14:04.577 に答える