2014-05-18 2 views
0

다른 디렉터리로 디렉터리를 복사하는 데 사용되는 파일 복사 프로그램을 수정하려고합니다. 이제 복사본을 실행하기 위해 목록에있는 디렉터리와 파일을 모두 전달하려고합니다.FileSystemInfo에 FileInfo 캐스팅

For Each _fromPath In CopyList 
     Dim FSinfo As FileSystemInfo() 
     If Directory.Exists(_fromPath) Then 
      Dim dir As New DirectoryInfo(_fromPath) 
      FSinfo = dir.GetFileSystemInfos 
     ElseIf File.Exists(_fromPath) Then 
      Dim file As New FileInfo(_fromPath) 
      FSinfo = file 
     End If 

     CountFiles(FSinfo) 

    Next 

    Private Function CountFiles(ByVal FSInfo As FileSystemInfo()) As Boolean 

이 코드는 디렉토리에서 잘 작동합니다. CountFiles에 패스를 전달하려면 FileSystemInfo에 있어야합니다. FileInfo를 FileSystemInfo로 형변환 (cast)하는 방법이 있습니까?

나는 CType(file, FileSystemInfo)을 시도하지만 Value of type 'System.IO.FileInfo' cannot be converted to '1-dimensional array of System.IO.FileSystemInfo'.

답변

1

하나의 문제는 오류 메시지가 당신에게하려고하는 것입니다 객체의 배열 (FileSystemInfo())에 개체 (FileInfo)를 변환하려고하는 것입니다 말했다. 중복 코드를 방지하기 위해

' my Count functions return numeric values: 
Private Function CountFiles(FSInfo As FileSystemInfo()) As Integer 

Private Function CountFiles(FInfo As FileInfo) As Integer 

내부 그들에게의 FileSystemInfo 루프에서 다른 호출 할 수 있습니다, 또는 어쩌면 둘은이 방법에 따라 일반 프로 시저를 호출 : 당신은 그 중 일부를 처리하는 오버로드 된 함수를 작성할 수 있습니다 쓴.

관련 문제