none
dateien verschieben von einen ordner in den anderen ordner über listbox RRS feed

  • Frage

  • möchte gerne dateien hin und her verschieben, irgendwie haut das nicht hin

    und zwar von "C:\Temp\test" nach C:\Temp\test1" und umgekehrt mein code:

    Imports System.IO
    Imports System.IO.File
    Imports System.Text
    
    Public Class Form2
    
     Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            ReadFilesInListbox(ListBox2, "C:\Temp\test")
            ReadFilesInListbox(ListBox3, "C:\Temp\test1")
    
        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
            Else
                IO.File.Move("C:\Temp\test", "C:\Temp\test1")
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                End If
            End If
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            If ListBox3.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
            Else
                If ListBox3.Items.Count > 0 Then
                    ListBox2.Items.Add(ListBox3.SelectedItem)
                    ListBox3.Items.Remove(ListBox3.SelectedItem)
                End If
            End If
        End Sub
    End Class

    Montag, 20. Januar 2014 12:08

Antworten

  • Schau hier:
         Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            'Variablen damit nicht immer die Funktion aufgerufen wird und es besser lesbar ist
            Dim selectetDatei As String = ListBox2.SelectedItem.ToString()
    
            Dim ganzerPfadA As String = Path.Combine(a, selectetDatei)
            Dim ganzerPfadB As String = Path.Combine(b, selectetDatei)
    
    
            If Not File.Exists(ganzerPfadA) Then
                MsgBox("Datei nicht Vorhanden", MsgBoxStyle.Exclamation, "Form") 'Um NICHT nicht ergänzt 
            ElseIf File.Exists(ganzerPfadB) Then
                Dim drr As DialogResult = MessageBox.Show("Soll """ & selectetDatei & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                If drr = DialogResult.Yes Then
                    System.IO.File.Delete(ganzerPfadB)
                    System.IO.File.Move(ganzerPfadA, ganzerPfadB)
    
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                End If
    
            Else
                ''Der Fall der dir Fehlt
                System.IO.File.Move(ganzerPfadA, ganzerPfadB)
    
                ListBox3.Items.Add(ListBox2.SelectedItem)
                ListBox2.Items.Remove(ListBox2.SelectedItem)
    
            End If
    Und schau dir auch die Komentare an. Kleiner Tipp schreib deine Quelltext ordentlich, dann ist er besser zu Lesen und du kanst einfacher Fehler finden. (Das hab ich überigens nicht getestet, also NICHT mit Copy und Pase arbeiten.
    • Als Antwort markiert guccini Dienstag, 25. Februar 2014 18:04
    Donnerstag, 20. Februar 2014 11:45

Alle Antworten

  • Hi guccini,

    es ist immer Hilfreich wenn man beschreibt was nicht funktioniert.

    Wenn du das Verzeichnis Verschieben willst, solltest du über Directory gehen.

    Ich geh aber mal davon aus, das du eine einzelne Datei abfragen willst. Dann soltest du aus der Listbox noch die Ausgewählte Datei mit in den String zum verschieben der Datei einfügen.

    MFG

    Björn

    Montag, 20. Januar 2014 12:17
  • sorry....im verzeichniss sind textdateien und die möchte ich verschieben

    so lässt sich das verschieben aber im ordner nicht, wie soll ich den code zusammensetzten?

    • Bearbeitet guccini Montag, 20. Januar 2014 12:29
    Montag, 20. Januar 2014 12:20
  • sorry....im verzeichniss sind textdateien und die möchte ich verschieben

    so lässt sich das verschieben aber im ordner nicht, wie soll ich den code zusammensetzten?

    IO.File.Move("C:\Temp\test", "C:\Temp\test1\") ist da nicht so wirklich hilfreich. Denn da fehlt die Angabe, welche Datei eigentlich verschoben werden soll. Also system.IO.File.Move("C:\Temp\test\" + ListBox2.SelectedItem, "C:\Temp\test1") könnte helfen.

    Gruß

    Johannes Busch



    Montag, 20. Januar 2014 12:35
  • als fehlermeldung bekomme ich: "IOException wurde nicht behandelt", verstehe nicht warum...!
    Montag, 20. Januar 2014 22:41
  • Hi guccini,

    wenn du willst das man dir Sinnvoll hilft, ist es hilfreich wenn du eine genaue Fehlermeldung schreibst.

    Sagst welche Zeile den Fehler wirft und den Code am besten mit Postest.

    So kann man nur raten.

    Hast du die Datei noch irgendwo geöffnet? Aus deinem Code herraus oder Extern.

    MFG

    Björn


    • Bearbeitet Palin Montag, 20. Januar 2014 23:34
    Montag, 20. Januar 2014 23:33
  • habe das so gemacht:

    Imports System.IO
    Imports System.IO.File
    Imports System.Text
    
    Public Class Form2
    
     Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       ListBox3.Items.AddRange(System.IO.Directory.GetFiles(ListBox3.Text & "C:\Temp\test1", "*.txt"))
       ListBox2.Items.AddRange(System.IO.Directory.GetFiles(ListBox2.Text & "C:\Temp\test", "*.txt")) Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click If ListBox2.SelectedIndex < 0 Then MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form") Else System.IO.File.Move("C:\Temp\test" + ListBox2.SelectedItem, "C:\Temp\test1") If ListBox2.Items.Count > 0 Then ListBox3.Items.Add(ListBox2.SelectedItem) ListBox2.Items.Remove(ListBox2.SelectedItem) End If End If End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click If ListBox3.SelectedIndex < 0 Then MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form") Else If ListBox3.Items.Count > 0 Then ListBox2.Items.Add(ListBox3.SelectedItem) ListBox3.Items.Remove(ListBox3.SelectedItem) End If End If End Sub End Class

    Dienstag, 21. Januar 2014 08:33
  • Hi

    du scheinst ein falsches Format für den Pfad zu haben.

    Benutze einfach mal eine Variable, in der du den zusammen gesetzten Pfad angibst. Mit dem Debugger kannst du dir dann anschauen welchen Wert sie hat.

    Aus in der anderen Post hast du geschrieben, das in Listbox2 der ganze Pfad drinsteht. Das könnte es z.B. sein.

    MFG

    Björn

    Dienstag, 21. Januar 2014 08:56
  • hab ich das richtig verstanden?....ich weiss nicht weiter.

    Dienstag, 21. Januar 2014 09:54
  • Versuch das mal:

    dim pfad = a + ListBox2.SelectedItem

    In pfad  sollte dann das drin stehen was bei Move als erster Parameter verwendet wird.

    Dienstag, 21. Januar 2014 09:58
  • habe das so gemacht
        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String
            Dim b As String
            Dim a = a + ListBox2.SelectedItem
            a = "C:\Temp\test\"
            b = "C:\Temp\test1\"
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
    
                System.IO.File.Move(a + ListBox2.SelectedItem, b)
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                End If
            End If
        End Sub
    ich finde da ist was falsch

    • Bearbeitet guccini Dienstag, 21. Januar 2014 10:42
    Dienstag, 21. Januar 2014 10:30
  • Hi

    a und b scheinen ja richtig zu sein.

    Da es einen Fehler gibt scheint das Ergebniss von a +ListBox2.SelectedItem falsch zu sein.

    Also was kommt da raus.

    MFG
    Björn

    Dienstag, 21. Januar 2014 11:12
  • die selbe fehlermeldung wie im obigen post
    Dienstag, 21. Januar 2014 11:34
  • Was steht im SelectetItem.

    Ich denke da steht so was wie "C:\Tem\test\test.txt" drin.

    a + SelectetItem ergibt dann "C:\Tem\test\C:\Tem\test\test.txt"

    Was kein gültiger Pfad ist.

    Dienstag, 21. Januar 2014 11:53
  • muss zur spätschicht...werde heut abend versuchen das nochmal durch zu gehn.....danke schonmal..!
    Dienstag, 21. Januar 2014 12:22
  • hab das probiert

       Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
          
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
    
                System.IO.File.Move(ListBox2.SelectedItem, b)
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                End If
            End If
        End Sub

    und das

       Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
          
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
    
                System.IO.File.Move(a, b)
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                End If
            End If
        End Sub

    klappt nicht...was soll ich machen???
    Dienstag, 21. Januar 2014 21:27
  • Hallo,
    ich denke nicht, das wirklich jemand das Programm für dich schreibt. Wenn du Hilfe brauchst, geben wir dir diese. Du musst im Gegenzug aber auch die Informationen bereitstellen, die wir zur Fehlerfindung benötigen. Siehe Björns letzten Post.

    Sicher ist es für uns einfacher ein Problem auszukorrigieren ohne weiter darüber nachzudenken. Nur wenn du nicht selbst guckst und versuchst das Problem zu verstehen, wirst du es nie schaffen solche Probleme selbst zu lösen.

    Ein weiterer wichtiger Faktor ist die benennung von Controls. Nachdem ich obige 2 Absätze geschrieben habe, wollte ich mir nochmal kurz deinen Code ansehen, verstand aber nichts. Was ist Button1, -2 und -3? Was ist ListBox1 und -2?

    Nun gut, nach intensivem Rätseln, hier meine Ideen dazu:

    In deiner 1. Lösung gibst du keine Datei als Ziel an. Entsprechend kann es nicht funktionieren (Datei zu Ordner verschieben).

    In deiner 2. Lösung versuchst du ein Verzeichnis in ein anderes zu verschieben, und das mit File.Move.

    Nun zu meiner Lösung wenn das SelectedItem den vollen Pfad enthält:

    System.IO.File.Move(ListBox2.SelectedItem.ToString(), Path.Combine(b, ListBox2.SelectedItem.ToString().Split("\"c).Last()))
    und wenn SelectedItem nur den Dateinamen ohne Pfad enthält:
    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    Path.Combine(string()) verbindet mehrere Pfadteile zu einem. Split(Char) spaltet einen String an einem bestimmten Zeichen auf und Last() gibt das letzte Element der Auflistung zurück.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert guccini Mittwoch, 22. Januar 2014 08:56
    • Tag als Antwort aufgehoben guccini Sonntag, 9. Februar 2014 19:01
    Dienstag, 21. Januar 2014 22:05
    Moderator
  • hi tom...war ne lange nacht.....habe versucht beim besten willen das raus zu kriegen......viele beispiele die mich ins irtum gebracht haben....da wäre ich niemals drauf gekommen....erfahrung fehlt......!

    aber eins steht fest......ich kann nur von euch lernen......und das beste da dran ist ihr kommentiert das entsprechend, aus den ganzen beispiele lerne ich mit sicherheit mehr.

    Dienstag, 21. Januar 2014 22:18
  • hab das probiert

    ...

    ListBox3.Items.Add(ListBox2.SelectedItem)

    ListBox2.Items.Remove(ListBox2.SelectedItem)

    ...

    klappt nicht...was soll ich machen???

    Guccini,

    was passiert denn in "ListBox3.Items.Add(ListBox2.SelectedItem)" alles?

    Anscheinend verliert dein ListBox2-Eintrag den Focus. Also:

    try

      ListBox2.Items.Remove(ListBox2.SelectedItem)

    catch ex as exception

      debug.writeln (ex.message)

    end try

    Mal schauen, was dir Debug so verrät...

    Johannes

    Donnerstag, 23. Januar 2014 10:35
  • hallo zusammen.....bin dabei mal mein kleines projekt zu erweitern ,bin auf folgendes gestossen wo ich halt nicht weiter komme, habe ein lösch button eingefügt ,das soll einzelne selektirte dateien aus der listbox mit messagebox yes/no gelöscht werden.

     
    Private Structure FileItem
            Public Path As String
            Public Name As String
        End Structure
        Dim fList As List(Of FileItem)
    
    Private Sub löschen_Click(sender As System.Object, e As System.EventArgs) Handles löschen.Click
            Dim dr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ gelöscht werden?", "Löschen", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning)
    
            fList = New List(Of FileItem)
            For Each f As String In IO.Directory.GetFiles("C:\test\", "*", IO.SearchOption.AllDirectories)
                Dim fi As New IO.FileInfo(f)
                Dim fitem As New FileItem
                fitem.Name = fi.Name
                fitem.Path = f
                fList.Add(fitem)
             
            Next
    
            For Each f As FileItem In fList
                If f.Name = ListBox2.SelectedItem Then
                    IO.File.Delete(f.Path)
                    
                End If
            Next
    
        End Sub


    • Bearbeitet guccini Sonntag, 9. Februar 2014 20:40
    Sonntag, 9. Februar 2014 18:40
  • hab ich das richtig verstanden?....ich weiss nicht weiter.

    Ich muss ehrlich gestehen, ich habe es nicht ganz genau verfolgt, den Thread.
    Aber aus "SelectedItem" vlt. "SelectedItem.value" machen?
    VB ist lange her, selectedvalue ist, meine ich, direkt ansprechbar. Korrigiert mich, wenn ich falsch liege.
    Hast du dir den zusammen gesetzten Pfad schon mal in einem ausspucken lassen?

    Gruß
    Dominique
    Sonntag, 9. Februar 2014 19:42
  • bei mir siehts so aus, klappt soweit ok ,nur mit den löschen haut das nicht so ganz hin...!
        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
            
                System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                    
                End If
            End If
        End Sub

    Sonntag, 9. Februar 2014 20:38
  • bei mir siehts so aus, klappt soweit ok ,nur mit den löschen haut das nicht so ganz hin...!

        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
            
                System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                    
                End If
            End If
        End Sub


    Hallo guccini,

    das ist ja auch Kraut&Rüben.  Du verhedderst Dich dauernd, weil Du Dir nicht klar machst, was eigentlich genau passieren soll.

    Dein ganzes Problem resultiert doch daraus, daß Du zwischen FullName und Name nicht sauber unterscheidest. Du hast einmal Listen mit FileInfos (das ist auch richtig) und Du hast zweitens ListBoxen mit den DateiKURZnamen. Und das bringt Dich durcheinander .

    Baue Deine Listen einmal etwas um, erweitere sie um eine Spalte mit der Indexnummer aus der Liste. Dann steht da:

    MeinTest.txt  1

    DeinTest.txt   2

    Im Code:

    System.IO.File.Move(ListA(ListBox2.SelectedItem.subitem(1)).FULLNAME, b)

    ListBox3.Add(ListBox2.SelectedItems(0))

    ListBox2.Items.Remove(ListBox2.SelectedItems(0).index)

    Versuche erst einmal das Konstrukt zu *verstehen*, bevor Du es blind ausprobierst. Programmieren ist kein Trial&Error-Game!

    Gruß

    Johannes Busch


    Montag, 10. Februar 2014 10:37
  • hi Johannes danke für deine antwort, mein problem liegt eigentlich beim löschen eine selektierte datei in der list box, das hin und her bewegen das funktioniert soweit ok, nur wenn ich eine datei selektiere in der listbox und löschen drücke kommt messagebox , wenn ich nein drücke wird die datei trotzdem gelöscht, und da komme ich durcheinander und weiss nicht wie ich das machen soll

    ich poste mal den ganzen code:

    Imports System.IO
    Imports System.IO.File
    Imports System.Text
    
    Public Class Form1
        Dim filesdirectory As String = String.Empty
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim directoryInfo1 As New System.IO.DirectoryInfo("C:\Temp\test\")
            Dim fileInfos1() As System.IO.FileInfo
            fileInfos1 = directoryInfo1.GetFiles()
            For Each fileInfo1 As System.IO.FileInfo In fileInfos1
                ListBox2.Items.Add(fileInfo1.Name)
    
            Next
    
            Dim directoryInfo2 As New System.IO.DirectoryInfo("C:\Temp\test1\")
            Dim fileInfos2() As System.IO.FileInfo
            fileInfos2 = directoryInfo2.GetFiles()
            For Each fileInfo2 As System.IO.FileInfo In fileInfos2
                ListBox3.Items.Add(fileInfo2.Name)
    
            Next
        End Sub
    	
    	   Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
    
                System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                End If
            End If
        End Sub
    	
    	   Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
    
            If ListBox3.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
    
                System.IO.File.Move(Path.Combine(b, ListBox3.SelectedItem.ToString()), Path.Combine(a, ListBox3.SelectedItem))
    
                If ListBox3.Items.Count > 0 Then
                    ListBox2.Items.Add(ListBox3.SelectedItem)
                    ListBox3.Items.Remove(ListBox3.SelectedItem)
                End If
            End If
        End Sub
    	
    	
    	
    	
    	  Private Structure FileItem
            Public Path As String
            Public Name As String
        End Structure
        Dim fList As List(Of FileItem)
    		
    	    Private Sub löschen1_Click(sender As System.Object, e As System.EventArgs) Handles löschen1.Click
            Dim dr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ gelöscht werden?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
    
            fList = New List(Of FileItem)
            For Each f As String In IO.Directory.GetFiles("C:\Temp\test\", "*", IO.SearchOption.AllDirectories)
                Dim fi As New IO.FileInfo(f)
                Dim fitem As New FileItem
                fitem.Name = fi.Name
                fitem.Path = f
                fList.Add(fitem)
                ' ListBox2.Items.Add(f)
            Next
    
            For Each F As FileItem In fList
                If F.Name = ListBox2.SelectedItem Then
                    IO.File.Delete(F.Path)
                    ListBox2.Items.Clear()
                End If
            Next
    
            Dim directoryInfo1 As New System.IO.DirectoryInfo("C:\Temp\test\")
            Dim fileInfos1() As System.IO.FileInfo
            fileInfos1 = directoryInfo1.GetFiles()
            For Each fileInfo1 As System.IO.FileInfo In fileInfos1
    
    
                ListBox2.Items.Add(fileInfo1.Name)
            Next
        End Sub
    
        Private Sub löschen2_Click(sender As System.Object, e As System.EventArgs) Handles löschen2.Click
            Dim dr As DialogResult = MessageBox.Show("Soll """ & ListBox3.SelectedItem.ToString & """ gelöscht werden?", "Löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
    
            fList = New List(Of FileItem)
            For Each f As String In IO.Directory.GetFiles("C:\Temp\test1\", "*", IO.SearchOption.AllDirectories)
                Dim fi As New IO.FileInfo(f)
                Dim fitem As New FileItem
                fitem.Name = fi.Name
                fitem.Path = f
                fList.Add(fitem)
                ' ListBox2.Items.Add(f)
            Next
    
            For Each F As FileItem In fList
                If F.Name = ListBox3.SelectedItem Then
                    IO.File.Delete(F.Path)
                    ListBox3.Items.Clear()
                End If
            Next
    
            Dim directoryInfo1 As New System.IO.DirectoryInfo("C:\Temp\test1\")
            Dim fileInfos1() As System.IO.FileInfo
            fileInfos1 = directoryInfo1.GetFiles()
            For Each fileInfo1 As System.IO.FileInfo In fileInfos1
    
    
                ListBox3.Items.Add(fileInfo1.Name)
            Next
        End Sub
    	End Class

    Montag, 10. Februar 2014 14:38
  • Hallo guccini,

    Du probierst zu viel und denkst zu wenig. Das ist das ganze Schlamassel.

    Dim dr As DialogResult = MessageBox.Show

    Und wozu soll das dienen, wenn Du das "dr" nicht auswertest?

    Packe doch das Löschen so ein:

    if MessageBox.Show(...) = DialogResults.Yes then

    end if

    Dann wird das wenigstens klarer.

    Johannes Busch

    Montag, 10. Februar 2014 15:01
  • hab das nicht so ganz kapiert...sorry

    habe es so gemacht:

    	    Private Sub löschen1_Click(sender As System.Object, e As System.EventArgs) Handles löschen1.Click
            If MessageBox.Show("Soll """ & ListBox3.SelectedItem.ToString & """ gelöscht werden?") = DialogResult.Yes Then
    
            End If
    
            fList = New List(Of FileItem)
            For Each f As String In IO.Directory.GetFiles("C:\Temp\test\", "*", IO.SearchOption.AllDirectories)
                Dim fi As New IO.FileInfo(f)
                Dim fitem As New FileItem
                fitem.Name = fi.Name
                fitem.Path = f
                fList.Add(fitem)
                ' ListBox2.Items.Add(f)
            Next
    
            For Each F As FileItem In fList
                If F.Name = ListBox2.SelectedItem Then
                    IO.File.Delete(F.Path)
                    ListBox2.Items.Clear()
                End If
            Next
    
            Dim directoryInfo1 As New System.IO.DirectoryInfo("C:\Temp\test\")
            Dim fileInfos1() As System.IO.FileInfo
            fileInfos1 = directoryInfo1.GetFiles()
            For Each fileInfo1 As System.IO.FileInfo In fileInfos1
    
    
                ListBox2.Items.Add(fileInfo1.Name)
            Next
        End Sub

    Montag, 10. Februar 2014 15:13
  • kann keiner helfen?
    Dienstag, 11. Februar 2014 19:13
  • Hi giccini,

    ich dein Post von gestern mit "ich hab es so gemacht".

    Als erledigt, angesehen und gedacht es würde bei dir jetzt SO funktionieren.

    Schreib bitte deutliche Fragen, dann weiß jeder das du noch Fragen hast.

    Dein Auzuführender Code muss oben in die if Abfrage, bei der Gelegenheit ist es noch schön die Funktionen in einezelen Methoden oder noch besser Klassen auszulagern.

    Mit Methoden könnte ca. so Aussehen (Habs jetzt nicht getestet).

        Private pfad As String = "C:\Temp\test\"
    
        Private Sub löschen1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles löschen1.Click
    
            If MessageBox.Show("Soll """ & ListBox3.SelectedItem.ToString & """ gelöscht werden?") = DialogResult.Yes Then
    
                AddFileToList()
                DeleteFiles()
                AddFilesToListBox()
    
            End If
    
        End Sub
    
        Private Sub AddFileToList()
    
            fList = New List(Of FileItem)
    
            For Each f As String In IO.Directory.GetFiles(pfad, "*", IO.SearchOption.AllDirectories)
                Dim fi As New IO.FileInfo(f)
                Dim fitem As New FileItem
                fitem.Name = fi.Name
                fitem.Path = f
                fList.Add(fitem)
                ' ListBox2.Items.Add(f)
            Next
    
        End Sub
    
    
        Private Sub DeleteFiles()
    
            For Each F As FileItem In fList
                If F.Name = ListBox2.SelectedItem Then
                    IO.File.Delete(F.Path)
                    ListBox2.Items.Clear()
                End If
            Next
    
        End Sub
    
        Private Sub AddFilesToListBox()
    
            Dim directoryInfo1 As New System.IO.DirectoryInfo(pfad)
            Dim fileInfos1() As System.IO.FileInfo
            fileInfos1 = directoryInfo1.GetFiles()
    
            For Each fileInfo1 As System.IO.FileInfo In fileInfos
                ListBox2.Items.Add(fileInfo1.Name)
            Next
    
        End Sub

    MFG

    Björn

    Dienstag, 11. Februar 2014 20:35
  • danke Björn für deine antwort, habe dein rat gefolgt, leider funktioniert nicht, wenn ich eine datei selektiere und auf button löschen drücke kommt messagebox mit ok statt ja/nein ,datei wird nicht gelöscht, was mach ich falsch?
    Mittwoch, 12. Februar 2014 04:37
  • Im "Standart" hat die MessageBox nur den Ok Butten.

    Du must beim Aufruf noch ein paar Parameter mit übergeben.

    Schau mal hier.

    Mittwoch, 12. Februar 2014 09:43
  • hi Björn klappt perfekt....herzlichen dank......hätte nur noch ein wunsch, wenn ich eine textdatei verschiebe die bereits im anderen ordner schon vorhanden ist, wie kann ich einen absturz verhindern? hatte mir gedacht mit ne meldung vielleicht "datei vohanden" oder sowas , was könnte man da machen?
    Mittwoch, 12. Februar 2014 15:18
  • Hi du kannst,mit File.Exists abfragen ob die Datei schon vorhanden ist und dann bei bedarf einen Dialog anzeigen.

    Dort kannst du auch abfragen ob die Datei ersetzt werden kann.

    Um Exeptions abzufangen kann man einen Try Catch Block verwenden.

    Da solltest du aber nicht wie im Beispiel die generelle Exception abfangen sonden immer, die die von der Aufgerufenen Klasse geschmissen werden kann. z.b. IOException.

    MFG

    Björn

    Mittwoch, 12. Februar 2014 17:04
  • habe es so versucht, leider klappt nicht ...sorry

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
                If System.IO.File.Exists(a) = true Then
                    Console.Write("File Not Found: " & a)
                Else
    
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                    If ListBox2.Items.Count > 0 Then
                        ListBox3.Items.Add(ListBox2.SelectedItem)
                        ListBox2.Items.Remove(ListBox2.SelectedItem)
                  
                    End If
                End If
            End If
        End Sub

    Mittwoch, 12. Februar 2014 17:32
  • Hi

    If System.IO.File.Exists(a) = true Then
                    Console.Write("File Not Found: " & a)
    Else

    Als wenn der File Existiert gibst du aus "File Not Found"?

    File.Exist gibt überigens einen Boolen zurück denn kannst du direkt prüfen.

    z.B.

    If File.Exist(a) then 
          Kopiere
    else   
        FehlerMeldung
    end if 

    Und es gibt noch den elseIF Befehl, das macht die Verschachtelung niccht so tief und den Code einfacher zu Lesen.

    Beschreib bitte auch immer was nicht Klappt. Sonst müssen, die Leute hier immer Raten und du bekommst gegebenen Falls einfach eine falsche Antwort.

    MFG

    Björn

    Mittwoch, 12. Februar 2014 21:09
  • ok versuche langsam nachzukommen,messagebox erscheint so wie es sein soll, datei wird aber nur getarnt in die andere listbox3 übertragen, starte ich die form nochmal dann befindet die sich in listbox2 ,da ist noch ne kleinigkeit was nicht passt:

      Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
                If File.Exists(a) Then
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
                Else
                    MsgBox("Datei ist vorhanden", MsgBoxStyle.Exclamation, "Form")
                End If
    
                If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                End If
            End If
        End Sub

    Donnerstag, 13. Februar 2014 04:27
  • Hi

    also der Code sieht erstmal so aus als ober er das macht, was er sollte. Bis auf die Sache, das auch wenn die Datei nicht Existiert, das Item aus Listbox2 in Listbox3 verschoben wird.

    Mit deiner Frage kann ich jetzt nichts Anfangen.

    MFG

    Björn

    Donnerstag, 13. Februar 2014 08:11
  • Genau,das item aus listbox2 darf nicht verschoben werden in listbox3 wenn Datei vorhanden ist
    Donnerstag, 13. Februar 2014 11:26
  • Dann pack es doch in die Gleiche if Bedingung.

    B.z.w. Pack die Sachen zusammen in eine Methode, die du im if Aufrufst.

    Donnerstag, 13. Februar 2014 11:42
  • habe das so zusammengepackt , funktioniert nicht.....sorry mir fehlt erfahrung!

     Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
                If File.Exists(a) Then
                    If ListBox2.Items.Count > 0 Then
                        ListBox3.Items.Add(ListBox2.SelectedItem)
                        ListBox2.Items.Remove(ListBox2.SelectedItem)
                        System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
                    Else
                        MsgBox("Datei ist vorhanden", MsgBoxStyle.Exclamation, "Form")
    
                    End If
                End If
              End If
        End Sub


    • Bearbeitet guccini Donnerstag, 13. Februar 2014 14:29
    Donnerstag, 13. Februar 2014 14:29
  • Hi,

    Das scheint noch ein wenig problematisch zu sein...
    Ein Denkanstoß:

    If File.Exists(a) Then System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem)) Else MsgBox("Datei ist vorhanden", MsgBoxStyle.Exclamation, "Form") End If

    Also auf Deutsch:
    Wenn der Ordner existiert, wird die Datei kopiert. Wir wissen weder, ob es die Datei gibt, noch wissen wir, ob sie vielleicht schon am Ziel vorhanden ist.
    Sollte der Ordner nicht existieren, wird eine Meldung ausgegeben, welche besagt "Datei ist vorhanden".

    Das ist alles halb so wild. Ich denke, Du hast einen Großteil des ganzen sehr wohl verstanden.
    Lass dich nicht stressen.

    Hier mal eine kleine Anregung:

    Das Verschieben der ListBoxItems sollte innerhalb dieses If-Blocks stattfinden und es sollte nicht auf die Existenz des Ordners, sondern auf die Existenz der Quell- und der Zieldatei hin geprüft werden.


    If Not File.Exists(Path.Combine(a, ListBoc2.SelectedItem.Tostring())) Then
        MsgBox.Show("Die zu verschiebende Datei existiert nicht, eine andere Datei auswählen!")
    Elseif File.Exists(Path.Combine(b, ListBox2.SelectedItem.tString())) Then
        if MsgBox.Show("Eine Datei mit dem Namen " & ListBox2.SelectedItem.ToString() & " ist bereits am Zielort vorhanden. Möchten Sie diese überschreiben?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) = vbYesNo then
            '//Quell- und Zieldatei sind vorhanden, benutzer möchte überschreiben:
            Try
            System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem.ToString()))
             If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                End If
            Catch Ex as System.IOException
                '//'Tuhe etwas mit dem Fehler...
            End Try
        Else
            MsgBox.Show("Vorgang durch User abgebrochen.")
        End If
    Else
        '//Quelldatei ist vorhanden, Zieldatei noch nicht. Es wird also ohne Nachfrage verschoben.
        System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem.ToString()))
         If ListBox2.Items.Count > 0 Then
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
                End If
    End If
    '// Hier zeigt sich auch schon, dass sich Codeschnipsel wiederholen. Im nächsten Step könnte man das in Funktionen oder Subs auslagern.

    ^^Dabei handelt es sich aber nicht um fertigen Code, der per Copy&Paste zu verwenden ist, es soll nur eine kleine Hilfestellung sein.

    hoffentlich hilfreich...

    Beste Grüße
    Dominique

    Donnerstag, 13. Februar 2014 14:40
  • danke dominique für deine mühe, habe vb2010 und bei diese zeile wird mir ne fehlermeldung angezeigt:

     if MsgBox.Show("Eine Datei mit dem Namen " & ListBox2.SelectedItem.ToString() & " ist bereits am Zielort vorhanden. Möchten Sie diese überschreiben?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) = vbYesNo then

    ich werd mal schön üben ,hoffe ich komme in die gänge....vielen dank nochmal!!

    Donnerstag, 13. Februar 2014 15:29
  • Hi

    wie Dominique schon gesagt hat kannst du den Code nicht einfach mit Copy und Past verwenden.

    Grundlegend solltest du aber eigendlich mit der Fehlermedung und deinem Wissen was du hast. Denn Fehler lösen können.

    Wenn du dir die andere Verwendung der MsgBox bei dir Anschaust siehst du das du auf

     DialogResult.Yes

    Prüfst und in dem Beispiel wird auf vbYesNo ändere das mal.

    Und bitte Fehlermeldung, Fehler und so angeben. Das macht es einfacher zu Helfen.

    MFG

    Björn

    Donnerstag, 13. Februar 2014 15:54
  • vbYesNo... Das passiert, wenn man eben mal schnell etwas runtercoded.
    Das war Absicht! Um zu prüfen, ob er auch wirklich schaut, was er da programmiert ;)

    Anstatt DialogResult.Yes gibt's auch VbYes, wenn ich mich nicht irre.

    Tja, mehr als hinweisen und bitten, über Strg+C hinauszudenken, kann ich leider nicht.

    Grüße
    Dominique

    Donnerstag, 13. Februar 2014 17:09
  • hallo zusammen, erstmal vielen dank für die aufklärung, seit ca. 2 monate beschäftige ich mich mit vb und ist nicht gerade leicht zu begreifen was so abläuft, auf copy&pasta ist nicht sinn der sache, mich interessiert einfach die funnktion "was passiert wen mann das und das macht", versuche mir selber ein bild zu machen ,google,recharchieren und testen, viele programmieren unterschiedlich, der eine sagt gut der andere sagt schlecht, wenn ich mir eure codierung angucke frage ich mich "wo zum teufel haben die das her?" .

    ich bewundere sehr eure kunst und hut ab..., so jetzt werd ich mal versuchen was draus zu machen, seit mir nicht böse wenn ich schwer von begriff bin......gruss und danke nochmal!

    Donnerstag, 13. Februar 2014 19:03
  • Viel Gelesen und natürlich dann auch angewendet.

    Wenn ich mich mit einem neuen Thema auseinander setzte, hole ich mir meist erstmal ein Buch dazu. Je nach dem, Lese ich es dann erst mal Komplett duch und setze dann Beispiele aus dem Buch um. Damit habe ich dann meist schon eine gute Grundlage und kann Sachen die mir Fehlen ergooglen.  

    Ein kostenloses Buch kannst du hier finden.

    Und keine Sorge es ist noch kein Meister vom Himmelgefalle.

    Donnerstag, 13. Februar 2014 21:23
  • hallo miteinander.....bin zu folgenden ergebnissen gekommen, bräuchte ein wenig unterstützung,dateien kann ich problemlos hin und her verschieben ,ist eine datei doppelt kommt auch die meldung "Überschreiben ja/nein", wenn ich ja bestätige wird die datei nicht überschrieben ,achja und es stürtzt jetzt auch nicht mehr ab.

        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            If ListBox2.SelectedIndex < 0 Then
                MsgBox("Please Select Data", MsgBoxStyle.Exclamation, "Form")
    
            Else
                If Not File.Exists(Path.Combine(a, ListBox2.SelectedItem.ToString())) Then
                    MsgBox("Datei Vorhanden", MsgBoxStyle.Exclamation, "Form")
                ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                    MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
                Else
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                    If ListBox2.Items.Count > 0 Then
                        ListBox3.Items.Add(ListBox2.SelectedItem)
                        ListBox2.Items.Remove(ListBox2.SelectedItem)
                    End If
                End If
            End If
        End Sub

    Freitag, 14. Februar 2014 15:15
  • Was ist denn jetzt genau deine Frage und welcher Code macht nicht was er soll?

    Freitag, 14. Februar 2014 15:30
  • ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                    MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)

    werde gefragt ob ich die vorhandene datei überschreiben soll , habe ja gedrückt wird aber nichts überschrieben..!
    Freitag, 14. Februar 2014 15:50
  • Du machst nichts mit dem Ergebnis der Messagbox, also kann auch nichts passieren.

    Wo rufs du den Code zum überschreiben der Datei auf.

    Freitag, 14. Februar 2014 15:59
  • hier?
      ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                    MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
                Else
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))

    Freitag, 14. Februar 2014 16:05
  • Wenn die Datei Existirt zeigst du eine MessagBox,  weiter machst du da nichts, du wirs das Ergebniss der Messagbox schon auswerten müssen. Und bei JA den Code zum ersetzen der Datei aufrufen müssen.

    Freitag, 14. Februar 2014 16:15
  •        Dim drr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                    If drr = DialogResult.Yes Then
                        System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))

    komme ein bissel durcheienander, dabei bekomme ich folgenden fehler:

    Freitag, 14. Februar 2014 16:23
  • Sagt doch der Fehler. Die Datei liegt schon im Ordner (hast du ja auch mit exist überprüft) mit Move kannst du sie nicht einfach ersetzen.

    Also must du die Datei erst Löschen (System.IO.Directory.Delete).

    Freitag, 14. Februar 2014 16:29
  •   If Not File.Exists(Path.Combine(a, ListBox2.SelectedItem.ToString())) Then
                    MsgBox("Datei Vorhanden", MsgBoxStyle.Exclamation, "Form")
                ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                    Dim drr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                    If drr = DialogResult.Yes Then
                        System.IO.Directory.Delete(b, ListBox2.SelectedItem.ToString())
    
                        System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                        If ListBox2.Items.Count > 0 Then
                            ListBox3.Items.Add(ListBox2.SelectedItem)
                            ListBox2.Items.Remove(ListBox2.SelectedItem)
                        End If
                    End If
                End If

    führt immer zu fehlern:

    Freitag, 14. Februar 2014 16:39
  • Hi du weißt schon wie man mit dem Debugger um geht, und wie man an die Informationen komme welche Variabelen eine Methode erwatet?

    Beim Move und Exist verwendest du ein Path.Combine beim Delete nicht? Könnte das die Ursache sein?

    Das ist jetzt nich böse gemeint, aber wenn ein Fehler kommt, solltest du selber schon einen Moment damit verbringen ihn zu Lösen.

    Freitag, 14. Februar 2014 16:47
  • hi palin habe mein bestes veruscht , komme nicht zum ergebniss

        Dim a As String = "C:\Temp\test\"
        Dim b As String = "C:\Temp\test1\"
    
         If Not File.Exists(Path.Combine(a, ListBox2.SelectedItem.ToString())) Then
                MsgBox("Datei Vorhanden", MsgBoxStyle.Exclamation, "Form")
            ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                Dim drr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                If drr = DialogResult.Yes Then
                    System.IO.Directory.Delete(Path.Combine(b, ListBox2.SelectedItem.ToString()))
    
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                    If ListBox2.Items.Count > 0 Then
                        ListBox3.Items.Add(ListBox2.SelectedItem)
                        ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                    End If
                End If
            End If

    Donnerstag, 20. Februar 2014 09:27
  • Hi

    was ist denn der Fehler oder das Problem?

    Donnerstag, 20. Februar 2014 10:18
  • hab mehrere stunden probiert komme einfach nicht dahinter

    fehler:

    Donnerstag, 20. Februar 2014 11:00
  • Hi übergibst du an die Funktion einen Verzeichnisnamen? Oder einen File Namen?

    Willst du ein Verzeichniss Löschen? (Directory.Delete) Oder eine Datei? (File.Delete)

    Donnerstag, 20. Februar 2014 11:08
  • ich bin blind "peinlich" jetzt klappt ausser die textdatei die nicht doppelt sind lassen sich nicht mehr verschieben???
        Dim a As String = "C:\Temp\test\"
        Dim b As String = "C:\Temp\test1\"
    
         If Not File.Exists(Path.Combine(a, ListBox2.SelectedItem.ToString())) Then
                MsgBox("Datei Vorhanden", MsgBoxStyle.Exclamation, "Form")
            ElseIf File.Exists(Path.Combine(b, ListBox2.SelectedItem.ToString())) Then
                Dim drr As DialogResult = MessageBox.Show("Soll """ & ListBox2.SelectedItem.ToString & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                If drr = DialogResult.Yes Then
                    System.IO.File.Delete(Path.Combine(b, ListBox2.SelectedItem.ToString()))
    
                    System.IO.File.Move(Path.Combine(a, ListBox2.SelectedItem.ToString()), Path.Combine(b, ListBox2.SelectedItem))
    
                    If ListBox2.Items.Count > 0 Then
                        ListBox3.Items.Add(ListBox2.SelectedItem)
                        ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                    End If
                End If
            End If

    Donnerstag, 20. Februar 2014 11:24
  • Das liegt daran das du in dem Fall nichts machts. Da must du noch Code für schrbeiben.
    Donnerstag, 20. Februar 2014 11:32
  • wie stelle ich das an??
    Donnerstag, 20. Februar 2014 11:43
  • Schau hier:
         Dim a As String = "C:\Temp\test\"
            Dim b As String = "C:\Temp\test1\"
    
            'Variablen damit nicht immer die Funktion aufgerufen wird und es besser lesbar ist
            Dim selectetDatei As String = ListBox2.SelectedItem.ToString()
    
            Dim ganzerPfadA As String = Path.Combine(a, selectetDatei)
            Dim ganzerPfadB As String = Path.Combine(b, selectetDatei)
    
    
            If Not File.Exists(ganzerPfadA) Then
                MsgBox("Datei nicht Vorhanden", MsgBoxStyle.Exclamation, "Form") 'Um NICHT nicht ergänzt 
            ElseIf File.Exists(ganzerPfadB) Then
                Dim drr As DialogResult = MessageBox.Show("Soll """ & selectetDatei & """ überschrieben werden?", "Überschreiben", MessageBoxButtons.YesNo)
    
                If drr = DialogResult.Yes Then
                    System.IO.File.Delete(ganzerPfadB)
                    System.IO.File.Move(ganzerPfadA, ganzerPfadB)
    
                    ListBox3.Items.Add(ListBox2.SelectedItem)
                    ListBox2.Items.Remove(ListBox2.SelectedItem)
    
                End If
    
            Else
                ''Der Fall der dir Fehlt
                System.IO.File.Move(ganzerPfadA, ganzerPfadB)
    
                ListBox3.Items.Add(ListBox2.SelectedItem)
                ListBox2.Items.Remove(ListBox2.SelectedItem)
    
            End If
    Und schau dir auch die Komentare an. Kleiner Tipp schreib deine Quelltext ordentlich, dann ist er besser zu Lesen und du kanst einfacher Fehler finden. (Das hab ich überigens nicht getestet, also NICHT mit Copy und Pase arbeiten.
    • Als Antwort markiert guccini Dienstag, 25. Februar 2014 18:04
    Donnerstag, 20. Februar 2014 11:45
  • danke palin klappt bestens, ordnung und sauberkeit muss sein da hast du recht, muss mich damit auseinander setzten ganz besonders "if" und "else".
    Freitag, 21. Februar 2014 07:40