2013-07-17 5 views
0

텍스트 상자를 통해 다른 위치로 폴더를 복사하는 코드가 있습니다. 사용자가 복사 할 폴더를 지정할 수있는 Textbox1과 사용자가 대상 폴더를 찾을 수있는 textbox2. 경로 C:\Users\%USERNAME%\Documents\My Music폴더 복사 및 제외 폴더

액세스가 거부되었습니다 :

Textbox1 경우 "내 문서"오류가 말을 발생하는 경로입니다.

"내 음악"으로 선택되어 "내 문서"에 숨겨진 폴더는 Windows에서 "보호 된 운영 체제 파일을 숨기"7. 나는 사람이 걸릴 수 VB.net에서 비주얼 스튜디오 2005 새를 사용하고 이 코드를 살펴보고 복사 할 폴더를 제외하는 방법을 알려주십시오.

답변

1

문제를 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에서 배울 수 있습니다. 때때로 성가 시지만 상당히 유용합니다.

+0

감사합니다. 코드에 구현하려고합니다. 어쩌면 Windows 7이 "내 음악", "내 그림"및 "내 비디오"표준이 "내 문서"의 숨겨진 폴더로 된 이유는 무엇입니까? –

+0

사용자가 내 문서/음악 등의 폴더를 소유하고있는 이유를 볼 수 없습니다. 코드를 실행하는 사용자와 다른 사용자의 폴더에 액세스하려고하면이 문제가 발생할 수 있습니다. 보안 사용 권한으로이 문제를 해결할 수있는 방법이 있다고 상상해 봅니다. 그러나 제가 제공 한 코드가 제대로 작동하고 사용자 친화적이어야합니다. – FraserOfSmeg

+0

"FraserOfSmeg"도움을 주셔서 감사합니다.하지만 원래 코드를 고수해야합니다. 문제에 대해 조금 더 설명 할 다른 질문을보십시오. –