hallo erst mal,
ich hab ein problem in meinen projekt was ich einfach nicht im griff bekomme und eure hilfe dazu benötige.
kurze erklärung: in meinen projekt wähle ich per OpenFileDialog einen ordner aus der gescannt wird und alle dateien aus unterordner und ordner werden in die listview geschrieben.
das mach ich mit der "rekursiv" variante, wo ich auch den listview - item.tag vergebe. der item.tag ist denn der ordner name wo die jeweilige datei sich drin befindet. jetzt zu dem eigentlichen problem was ich habe, per funktion kann ich den ordner umbenennen von dem im listview selektierten item (datei), was auch funktioniert, nur in den meisten fallen ist ja nicht nur eine datei im ordner sondern mehrere und hier kommt auch der fehler immer. wenn ich eine anderes item (datei) wähle (also im listview selektiere), die sich auch in von mir vorher um genannten ordner befindet, kriege ich immer den fehleranzeige "datei nicht gefunden". das problem liegt am item.tag(ordner name), beim ordner umbenennen sage ich auch per schleife das item.tag = newitem.tag ist, doch er macht es einfach nicht. nur das selektierte item hat den neuen .tag übernommen, die anderen items haben danach immer noch den alten .tag.
hier mal mein rename code, vieleicht nicht besonders sauber beschrieben aber ich bin nach am vb lernen
habt ihr ein tip, rat für mich
falls noch infos gebraucht werder, einfach fragen
ich sag denn schon mal thx thx
ich hab ein problem in meinen projekt was ich einfach nicht im griff bekomme und eure hilfe dazu benötige.
kurze erklärung: in meinen projekt wähle ich per OpenFileDialog einen ordner aus der gescannt wird und alle dateien aus unterordner und ordner werden in die listview geschrieben.
das mach ich mit der "rekursiv" variante, wo ich auch den listview - item.tag vergebe. der item.tag ist denn der ordner name wo die jeweilige datei sich drin befindet. jetzt zu dem eigentlichen problem was ich habe, per funktion kann ich den ordner umbenennen von dem im listview selektierten item (datei), was auch funktioniert, nur in den meisten fallen ist ja nicht nur eine datei im ordner sondern mehrere und hier kommt auch der fehler immer. wenn ich eine anderes item (datei) wähle (also im listview selektiere), die sich auch in von mir vorher um genannten ordner befindet, kriege ich immer den fehleranzeige "datei nicht gefunden". das problem liegt am item.tag(ordner name), beim ordner umbenennen sage ich auch per schleife das item.tag = newitem.tag ist, doch er macht es einfach nicht. nur das selektierte item hat den neuen .tag übernommen, die anderen items haben danach immer noch den alten .tag.
hier mal mein rename code, vieleicht nicht besonders sauber beschrieben aber ich bin nach am vb lernen
VB.NET-Quellcode
- For Each item As ListViewItem In ListView1.SelectedItems
- If item.Tag IsNot Nothing Then
- 'pfad zusammen stellen
- Dim los = (TreeView1.TopNode).Text
- Dim lus = (item.Tag).ToString
- Dim les = (ListView1.FocusedItem).Text
- Dim las = IO.Path.Combine(los, lus, les)
- 'info aus mp3tag lesen
- Mp3Info.Read(las)
- ar = Mp3Info.ID3v23Tag.Artist ' interpret
- al = Mp3Info.ID3v23Tag.Album' album
- ja = Mp3Info.ID3v23Tag.Year ' jahr
- ge = Mp3Info.ID3v23Tag.Genre' genre
- 'alten pfad merken
- Dim newlas = IO.Path.Combine(los, lus)
- If cbo_rename.SelectedItem = "%ar" Then
- newItem = ar
- ElseIf cbo_rename.SelectedItem = "%ar - %al" Then
- newItem = ar & " - " & al
- ElseIf cbo_rename.SelectedItem = "%ar - %al - %ja" Then
- newItem = ar & " - " & ti & " - " & ja
- End If
- 'neuen pfad zusammen setzen
- newlas = los + "\" + newItem
- If Directory.Exists(newlas) And Not Directory.Exists(newlas) Then
- 'umbenennen vom ordner
- My.Computer.FileSystem.RenameDirectory(newlas, newItem)
- Dim directory As DirectoryInfo
- directory = New IO.DirectoryInfo(newlas)
- Dim files = directory.GetFiles()
- For Each file As FileInfo In files
- Dim colCount = ListView1.Columns.Count
- Dim listCount = ListView1.Items.Count - 1
- For j As Integer = 0 To listCount
- Dim lvName = ListView1.Items(j).Text
- If lvName = file.Name Then
- For i As Integer = 0 To colCount
- Dim colName = ListView1.Columns(i).Text
- 'columnsheader name
- If colName = "Ordner" Then
- 'neuer .tag
- item.Tag = file.Directory.Name
- 'neuer eintrag in listview
- ListView1.Items(j).SubItems(i).Text = newItem
- Exit For
- End If
- Next
- End If
- Next
- Next
- End If
- End If
- Next
- End Sub
habt ihr ein tip, rat für mich
falls noch infos gebraucht werder, einfach fragen
ich sag denn schon mal thx thx
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „aSc0I3y“ ()