Dateien via Buttonklick kopieren lassen

  • VB.NET

Es gibt 74 Antworten in diesem Thema. Der letzte Beitrag () ist von Michael K..

    Dateien via Buttonklick kopieren lassen

    Hallo,
    ich bin recht neu im arbeiten mit VB.
    Ich habe mir in VB 2008 jetzt ein Programm vom Äußeren her fertiggestellt.
    Nun möchte ich, dass bei einem Klick auf einen Button Dateien von einem Ort an einen anderen kopiert werden. Jedoch habe ich keine wirkliche Ahnung wie ich das Hinbekomme. Könnte mir da jemand etwas bei helfen? Wäre sehr nett.
    Ich hatte das Ganze vorher via Batch gelöst, wollte es jetzt aber mit eine grafischen Oberfläche versehen.
    Willkommen im Forum. :thumbup:
    Suchst Du so was:

    VB.NET-Quellcode

    1. Dim fi = New IO.FileInfo("c:\Temp\Test.jpg")
    2. fi.CopyTo("c:\Temp\Test2.jpg")
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    1. Verschieben: fi.MoveTo("c:\Temp\Test2.jpg")
    2. Boolean: Ein binärer Wert, der lediglich die Werte True oder False annehmen kann.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Naja, ich will ja eigentlich nur dieses kleine Programm machen. Mehr nicht. Dazu wollte ich es eigentlich vermeiden das ganze Buch zu lesen. Wenn ich in Zukunft mal noch andere Dinge machen will, wird das sicherlich sehr hilfreich sein. Aber für mein kleines Programm ist mir das wie gesagt zu viel Aufwand. Daher wäre es nett, wenn mir hier ein paar kleine Fragen beantwortet werden könnten :)


    Habe es eben vielleicht nicht erwähnt. Aber die Datei soll im alten Verzeichnis auch bestehen bleiben und kopiert werden und eine andere gleichnamige an einem anderen Ort ersetzen. Ist das möglich?

    Des Weiteren habe ich mir die Frage gestellt, ob man das mit dem Pfad auch anders lösen kann. Also so, dass man das Programm auch auf anderen PCs verwenden kann unter dem sich die zu kopierenden Dateien an einem anderen Ort befinden.
    In Batch hat das bei mir so ausgesehen.
    xcopy "..\_files\Test.jpg" "..\Zielordner\Test.jpg" /Y
    Die CopyTo-Methode belässt die Datei an ihrem Ort. Um relative Pfade zu verwenden verknüpfe die Pfade mit Environment.CurrentDirectory (aktuelles Arbeitsverzeichnis). Die korrekte Formulierung wäre also:

    VB.NET-Quellcode

    1. Dim fi = New IO.FileInfo(IO.Path.Combine(Environment.CurrentDirectory, "\_files\Test.jpg"))
    2. fi.CopyTo(IO.Path.Combine(Environment.CurrentDirectory, "\Zielordner\Test.jpg"), True)
    Nach abspeichern der Anwendung und einfügen in den entsprechenden Ordners, bekomme ich beim Klick auf den entsprechenden Button die Meldung: "Ein Teil des Pfades "C:\_files\Test1.jpg" konnte nicht gefunden werden.
    Dieses "C:\" hätte doch nun eigentlich nicht mehr vorhanden sein sollen, oder?
    Der Quellcode des Buttons sieht wie folgt aus:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Design1.Click
    2. Dim fi = New IO.FileInfo(IO.Path.Combine(Environment.CurrentDirectory, "\copyfiles\Test1.jpg"))
    3. fi.CopyTo(IO.Path.Combine(Environment.CurrentDirectory, "\Zielordner\Test1.jpg"), True)
    4. End Sub


    Die Ordnerstruktur (Ordner befindet sich auf dem Desktop):

    VisualBasic
    copyfiles
    Switcher
    zielordner

    Artentus schrieb:

    VB.NET-Quellcode

    1. Environment.CurrentDirectory
    ist suboptimal, da Du sie mit einem einfachen IO.Directory.SetCurrentDirectory("c:\") verstellen kannst.
    Besser ist, Du gehst vom Verzeichnis der Exe aus:

    VB.NET-Quellcode

    1. Dim path = Application.StartupPath
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    An welcher Stelle muss das mit dem

    VB.NET-Quellcode

    1. Dim path = Application.StartupPath

    denn hin?

    Ich glaube jetzt habe ich den Code ein wenig durcheinander gebracht ;(

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Design1.Click
    2. Dim path = Application.StartupPath
    3. Dim fi = New IO.FileInfo("\copyfiles\Test1.jpg")
    4. fi.CopyTo("\Zielordner\Test1.jpg")
    5. End Sub
    Aber nun weiß das Programm doch nicht welche Datei kopiert werden soll. Von dem Ordner indem sich die Anwendung befindet, muss man einen Ordner zurück gehen und dann in einen anderen Ordner in dem sich dann die zu kopierende Datei befindet. Das muss man ja noch irgendwie mit einbauen?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Design1.Click
    2. Dim fi = New IO.FileInfo(Application.StartupPath)
    3. fi.CopyTo("\Zielordner\Test1.jpg")