Ordener kopieren mit VB...

  • VB6

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Myrax.

    Ordener kopieren mit VB...

    Hi!

    Ich hab ne Frage:
    Wie kann man mit vb ganze Ordner kopieren. Es gibt ja den Befehl FileCopy, aber damit kann ich nur dateien kopieren... geht das auch mit ganzen Ordern, oder muss ich da jede einzelne Datei in dem Ordner per FileCopy kopieren?

    Danke schon mal

    Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hirsches“ ()

    und dann...

    da gibt es kein system.io.dictionary.copy oder so

    ich benutze momentan so en zusammengebastelten code, der alle dateien einzeln ausliest und kopiert.

    über my.filesystem.copydictionary geht es auch nicht, weil ich ein stammverzeichnis kopieren will...
    mit my.computer.filesystem.copyDirectory werden die symbole auch nicht angezeigt
    das hat was mit den attributen (vom ordner glaub ich) zu tun

    EDIT:
    ich habe das mit dem symbol geschafft
    der ordner muss das attribut "system" haben :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Denny“ ()

    Hi,
    ich habe einen Code zum Kopieren von Ordnern gefunden, jedoch werden die 2 ersten Variablen nicht angenommen. In der Anweisung steht "Zuerst im Projekt einen Verweis auf die "Windows Scripting Runtime" hinzufügen (Menü Projekt - Verweise). Dann an der entsprechenden Stelle folgenden Code einfügen:"

    Nur wie füge ich so ein Verweis hinzu? In den Eigenschaften, undter Verweise gab es das nicht.

    Mein Code:

    Visual Basic-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. ' Ordner kopieren
    3. Dim FSO As New FileSystemObject
    4. Dim Folder As Folder
    5. Dim sFolderPath As String
    6. Dim sDestPath As String
    7. ' Welcher Ordner soll kopiert werden?
    8. sFolderPath = TextBox1.Text
    9. ' Wohin soll der Ordner kopiert werden?
    10. sDestPath = TextBox2.Text
    11. ' Kopiervorgang starten
    12. Folder = FSO.GetFolder(sFolderPath)
    13. Folder.Copy(sDestPath)
    14. End Sub


    Danke ;)
    hier mal ein Code der einen kompletten Ordner inkl. aller Subfolders kopiert und der auch funktioniert ohne Verweis zu setzen. ;)

    Visual Basic-Quellcode

    1. Public Function nCopyFolder(ByVal strOriFolder As String, _
    2. ByVal str2Folder As String, _
    3. Optional ByVal blnOverWrite As Boolean = True) As Boolean
    4. Dim fso As Object
    5. Try
    6. fso = CreateObject("Scripting.FileSystemObject")
    7. fso.copyfolder(strOriFolder, str2Folder, blnOverWrite)
    8. Return True
    9. Catch ex As IOException
    10. MsgBox("Der Ordner konnte wegen Zugriffs-Fehler nicht kopiert werden! Ordner von " & strOriFolder & " nach " & str2Folder)
    11. Return False
    12. Catch ex As Exception
    13. Me.ErrorHandler(ex) '// musst Du rausnehmen, ist bei mir nur der Anschluß an das Fehlerprotokoll
    14. Return False
    15. Finally
    16. fso = Nothing
    17. End Try
    18. End Function


    Gruß

    Rainer
    Hm... Ich blick da nicht durch. Ich kann doch niergend angeben, von wo und wohin kopiert wird. Auserdem wird das IOException angemeckert.
    Auserdem würde ich gerne auf Button Druck den Kopiervorgang starten.

    Weist du, es ist für einen Neueinsteiger wie ich schwer sowas zu verstehen.

    Edit: kannst du mir vllt einfach nur sagen, wie das mit dem verweis geht? Dennoch danke ;)

    NicoHood schrieb:

    Hm... Ich blick da nicht durch. Ich kann doch niergend angeben, von wo und wohin kopiert wird.


    Öhem ... natürlich. Die Function erwartet beim Aufruf 2 Parameter ... der erste für die Angabe welcher Ordner kopiert werden soll und der zweite für die Angabe wohin.


    Auserdem wird das IOException angemeckert.


    Dann nimm es einfach raus? ;)


    Auserdem würde ich gerne auf Button Druck den Kopiervorgang starten.


    Ja und? Mach doch, ist doch mit dem Code kein Problem.


    Weist du, es ist für einen Neueinsteiger wie ich schwer sowas zu verstehen.


    Keine Frage, aber Du musst auch schon ein wenig selber mitarbeiten und unverständliches mal nachlesen/nachgoogeln und natürlich auch vllt erstmal Dir die Basics aneignen ... wie man eine Funktion aufruft und was es mit den Parametern auf sich hat ist einfach das kleine Einmal-Eins der Programmierung.


    Edit: kannst du mir vllt einfach nur sagen, wie das mit dem verweis geht? Dennoch danke ;)


    Einfach googlen da findest Du mehr als genug Sites mit ausführlichen Erklärungen und Beschreibungen. Wieso sollen wir Dir hier was erklären wozu es schon zig-tausend Erklärungen im Internet gibt ... vor allem wenn die meisten davon für Anfänger geschrieben sind?

    Gruß

    Rainer
    Ich bin ja selbst jemand, der ungern doppelposts oder eine Frage 2mal stellt. Aber entweder gebe ich das falsche bei Google ein, oder ich suche was, was es nicht gibt.
    Ich habe alles mögliche gesucht, aber in meiner Verweisliste gibt es genau den Eintrag nicht.

    Und wie kann ich deine funktion überhaupt starten lassen?

    Die von mir gepostete würde ich noch verstehen, nur habe ich diese verweise nicht...
    Jetzt versuche ich es anders:
    My.Computer.FileSystem.CopyDirectory("F:\test\Quelle\1", "F:\test\Ziel\test")
    Dateien kann ich kopieren, aber beib einer directory scheitert das Programm dann. Wieso weis ich nicht.
    --> edit: es klappt doch, nur muss man true anhängen zum überschreiben


    Ich glaube, wenn ich schlauer bin kann ich wieder nur die augen rollen über meine Beiträge, leider.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NicoHood“ ()