VB에서 구현한 반복 복사 파일과 검색 파일의 코드 공유

2631 단어
프로그램에서 폴더를 복사하는 기능을 하려면, 귀속으로 쓰기가 매우 편리하다.나중에 어떤 인형(자기가 알면 돼--)이 비슷한 것을 실현하려고 했는데 잘 안 되는 것 같아서 복제 폴더의 귀속 코드를 잃어버렸어요.

Public Shared Sub CopyDirectory(source As String, destination As String)
  If Directory.Exists(destination) = False Then
    Try
      Directory.CreateDirectory(destination)
    Catch ex As Exception
      Logger.LogError(Logger.SourceType.Application, "Copy build process: Cannot create folder: " & destination)
      Return
    End Try
  End If
  
  For Each paths As String In Directory.GetDirectories(source)
    CopyDirectory(paths, Path.Combine(destination, paths.Substring(paths.LastIndexOfAny({""c, "/"c}) + 1)))
  Next
  
  For Each files As String In Directory.GetFiles(source)
    Try
      File.Copy(files, Path.Combine(destination, files.Substring(files.LastIndexOfAny({""c, "/"c}) + 1)), True)
      _copiedFiles += 1
    Catch ex As Exception
      Logger.LogError(Logger.SourceType.Application, "Copy build process: Cannot copy file: " & files)
    End Try
  Next
  
End Sub

돌아가는 절차가 너무 깔끔하고 예쁘죠?나중에 폴더에서 파일을 검색하는 방법도 귀속적이라고 썼는데 여기서 함께 잃어버렸다.

''' 
''' Search the specified file in the folder and its sub folders and return its full path name. Empty string if not found.
''' 
''' The file to search (no folder).
''' 
Public Shared Function SearchFile(folder As String, fileName As String) As String
  If Directory.Exists(folder) = False Then Return String.Empty
  
  fileName = fileName.Trim.ToLower
  
  If fileName.IndexOfAny({""c, "/"c}) >= 0 Then
    fileName = GetFileName(fileName)
  End If
  
  Dim list() As String = Directory.GetFiles(folder)
  
  For i As Integer = 0 To list.GetUpperBound(0)
    If GetFileName(list(i)).Trim.ToLower = fileName Then Return list(i)
  Next
  
  Dim directories() As String = Directory.GetDirectories(folder)
  
  For i As Integer = 0 To directories.GetUpperBound(0)
    Dim return_file As String = SearchFile(directories(i), fileName)
  
    If return_file.Length > 0 Then Return return_file
  Next
  
  Return String.Empty
End Function

GetFileName은 파일 이름과 확장자만 남는 경로를 제거하는 방법입니다.
이 두 단락의 코드는 정말 너무 간단해서 나는 설명할 곳이 없다고 생각한다.

좋은 웹페이지 즐겨찾기