ComboBox Item als Laufwerk festlegen; Backupmanager

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von Snow.

    ComboBox Item als Laufwerk festlegen; Backupmanager

    Hallo Leute,



    Ich bin durch Google zu euch gestoßen & dachte mir, dass ihr mir vielleicht helfen könnt, wenn es Google schon nicht tut :P.

    Nun zu meinem Problem, ich werde noch verrückt dabei!


    Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. ComboBox1.Items.AddRange(System.IO.Directory.GetLogicalDrives)
    3. End Sub


    Mit diesem Code lasse ich in der ComboBox1 alle logischen Laufwerke aufführen. Soweit kein Problem.
    Jetzt soll der User ein Laufwerk auswählen, von dem ein Backup hergestellt werden soll.
    Das Programm soll nicht alles vom Laufwerk kopieren, sondern lediglich bestimmte Ordner. Und genau da liegt mein Problem.

    Wie sage ich meinem Programm, dass der ausgewählte ComboBox-Eintrag ein Laufwerk ist & dass er nur bestimmte Ordner dieses Laufwerk zu kopieren hat?

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Computer.FileSystem.CopyDirectory(ComboBox1.Text, "C:\Test\", True)End Sub

    Ich dachte an obige Konstruktion, aber er gibt mir jedes mal an, dass es sich beim ComboBox1.Text um ein Stammverzeichnis handelt.
    Ist es ja auch, aber wie sage ich ihm, dass er nur bestimmte Ordner kopieren soll?

    Über Hilfe wäre ich sehr sehr dankbar :)
    Schau dir mal folgendes an:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. For Each Drive As Object In My.Computer.FileSystem.Drives
    4. Me.ComboBox1.Items.Add(CStr(Drive.ToString))
    5. Next
    6. End Sub
    7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    8. MessageBox.Show(CStr(Me.ComboBox1.SelectedItem))
    9. End Sub
    10. End Class
    Beim Versuch:

    Quellcode

    1. My.Computer.FileSystem.CopyDirectory(ComboBox1.SelectedItem, "C:\Test\", True)


    zeigt er mir an, wenn ich beispielsweise F:\ in der ComboBox1 ausgewählt habe:



    Der Vorgang konnte nicht abgeschlossen werden, da das Verzeichnis ein Stammverzeichnis ist: F:\.

    Ich blick' bei dem ganzen nicht mehr durch. Ist es denn wirklich so schwer aus einem ausgewählten Laufwerk einen bestimmten Ordner zu kopieren?

    Quellcode

    1. Public Class Form1
    2. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. My.Computer.FileSystem.CopyDirectory(ComboBox1.SelectedItem, "C:\Test\", True)
    4. End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. For Each Drive As Object In My.Computer.FileSystem.DrivesMe.ComboBox1.Items.Add(CStr(Drive.ToString))
    6. Next
    7. End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    8. My.Computer.FileSystem.CopyDirectory("C:\Test", ComboBox1.SelectedItem, True)End Sub
    9. Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    10. End SubPrivate Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged
    11. If CheckBox8.Checked = True Then
    12. CheckBox7.Checked = True
    13. CheckBox6.Checked = True
    14. CheckBox5.Checked = True
    15. CheckBox4.Checked = True
    16. CheckBox3.Checked = True
    17. CheckBox2.Checked = True
    18. CheckBox1.Checked = True
    19. CheckBox9.Checked = True
    20. End If
    21. If CheckBox8.Checked = False Then
    22. CheckBox7.Checked = False
    23. CheckBox6.Checked = False
    24. CheckBox5.Checked = False
    25. CheckBox4.Checked = False
    26. CheckBox3.Checked = False
    27. CheckBox2.Checked = False
    28. CheckBox1.Checked = False
    29. CheckBox9.Checked = False
    30. End If
    31. End SubPrivate Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    32. End SubPrivate Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    33. End SubPrivate Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    34. End Sub
    35. End Class




    Ich hoffe du blickst durch ;)
    So, vielen Dank erstmal. Ich habe ein bisschen getüftelt & bin nun schon mal einen Schritt weíter gekommen:

    Mit folgendem Code:

    Quellcode

    1. sDirectory = "C:\Test\"
    2. sCopyTo = ComboBox1.SelectedItem
    3. My.Computer.FileSystem.CopyDirectory(sDirectory, sCopyTo, True)

    Kann ich den Inhalt aus dem Ordner C:\Test in den Root des ausgewählten Laufwerks kopieren. Jetzt muss es mir nur noch gelingen, es nicht in den Root, sondern in einen Ordner zu kopieren.