문제를 4 개의 하위로 나누는 것이 좋습니다. 먼저 사용자가 소스 및 대상에 대해 원하는 폴더를 선택할 수있게 해주는 두 개의 하위 폴더. 복사를 시작하는 버튼 클릭 이벤트와 실제로 복사를 처리하는 서브 이벤트입니다.
크기에이를에보십시오 :
Dim CopyFromPath As String
Dim CopyToPath As String
Private Sub TextBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.MouseClick
Dim fldbroser1 As New FolderBrowserDialog
fldbroser1.RootFolder = Environment.SpecialFolder.MyMusic
fldbroser1.ShowDialog()
CopyFromPath = fldbroser1.SelectedPath
End Sub
Private Sub TextBox2_MouseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.MouseClick
Dim fldbroser1 As New FolderBrowserDialog
fldbroser1.RootFolder = Environment.SpecialFolder.MyComputer
fldbroser1.ShowDialog()
CopyToPath = fldbroser1.SelectedPath
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CopyAllFiles(CopyFromPath, CopyToPath)
End Sub
Private Sub CopyAllFiles(ByVal CopyFromPath As String, ByVal CopyToPath As String)
If Not Directory.Exists(CopyToPath) Then
Directory.CreateDirectory(CopyToPath)
End If
For Each filee As String In Directory.GetFiles(Path.GetDirectoryName(CopyFromPath))
Dim dest As String = Path.Combine(CopyToPath, Path.GetFileName(filee))
File.Copy(filee, dest)
Next
For Each folder As String In Directory.GetDirectories(Path.GetDirectoryName(CopyFromPath))
Dim dest As String = Path.Combine(CopyToPath, Path.GetFileName(folder))
CopyAllFiles(folder, dest)
Next
End Sub
당신이 작동하지 System.IO를 가져와야합니다. 코드에 문제가 있으면 언제든지 질문하십시오. 행운을 빕니다 VB에서 배울 수 있습니다. 때때로 성가 시지만 상당히 유용합니다.
감사합니다. 코드에 구현하려고합니다. 어쩌면 Windows 7이 "내 음악", "내 그림"및 "내 비디오"표준이 "내 문서"의 숨겨진 폴더로 된 이유는 무엇입니까? –
사용자가 내 문서/음악 등의 폴더를 소유하고있는 이유를 볼 수 없습니다. 코드를 실행하는 사용자와 다른 사용자의 폴더에 액세스하려고하면이 문제가 발생할 수 있습니다. 보안 사용 권한으로이 문제를 해결할 수있는 방법이 있다고 상상해 봅니다. 그러나 제가 제공 한 코드가 제대로 작동하고 사용자 친화적이어야합니다. – FraserOfSmeg
"FraserOfSmeg"도움을 주셔서 감사합니다.하지만 원래 코드를 고수해야합니다. 문제에 대해 조금 더 설명 할 다른 질문을보십시오. –