2017-03-03 9 views
-1

FileSystemObject.CopyFileの使用に問題があります。私が読んだのフォーラムから、私はそれを正しく使用していると思うが、私はまだ、次のコンパイラエラーを取得しています:FileSystemObject CopyFile:未処理の例外

ArgumentException was unhandled: Value does not fall within expected range

ここではコードです:で示唆したように

Public Class Form1 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim fso As New Scripting.FileSystemObject 
    Dim testfolderchk 
    testfolderchk = Dir("C:\Test\") 
    Dim inforeader As System.IO.FileInfo 
    Dim filedestinationcheck = Dir("C:\Test2\") 

    If testfolderchk <> "" Then 
     If Microsoft.VisualBasic.Left(testfolderchk, 4) = "test" Then 
      inforeader = My.Computer.FileSystem.GetFileInfo("C:\Test" & testfolderchk) 
      filetime = (inforeader.LastWriteTime) 
      If testfolderchk = filedestinationcheck Then GoTo skipfile 
      If testfolderchk = filedestinationcheck2 Then GoTo skipfile 

     Else : GoTo skipfile 
     End If 
    End If 

fso.CopyFile(testfolderchk, filedestinationcheck, True) 
+3

'システムのnメソッドCopyTo (String, Boolean)を使用.IO'ネームスペースには、 'FileSystemObject'よりもNETコードに適したあらゆる種類のファイル関連メソッドがあります。 – Plutonix

+0

提案?誰でも? – user2644085

+0

'提案?'はい、FSOを使わず、 'GoTo'を使わないでください。ちょっとした研究で、ここで何百ものファイルコピーアプレットを見つけることができます – Plutonix

答えて

2

あなたがFileSystemObjectの使用を廃止し、代わりにSystem.IO名前空間を使用し、特にFileInfoすべきコメント:

Provides properties and instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. This class cannot be inherited.

FileInfoを使用すると、CA私は私が何を意味するかをお見せするためにコードのビットを起草している

Copies an existing file to a new file, allowing the overwriting of an existing file.

Dim folderToCheck As String = "C:\Test" 
Dim destinationFolder As String = "C:\Test2" 

Dim file As IO.FileInfo = New IO.FileInfo(IO.Path.Combine(folderToCheck, "test.txt")) 

Dim filetime As Date = file.LastWriteTime 

file.CopyTo(IO.Path.Combine(destinationFolder, file.Name), True) 

Path.Combineの使用に注意してください:

Combines two strings into a path.

+1

ありがとう。私は何か似たようなことをして、うまく働いてしまった。それは有り難いです。 @Bugs – user2644085