vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
ListView -> Images wieder freigeben 
Autor: met
Datum: 17.09.08 13:49

Hallo,

ich habe eine ListView (lvwFiles) und eine ImageList(imgList) mit PNG-Dateien.
Jetzt vergleiche ich in cmdMerge_Click alle Bilder miteinander und möchte alle doppelten verschieben.

Doch beim Verschieben kommt folgende Meldung:
Der Prozess kann nicht auf die Datei zugreifen, da sie bereits von einem anderen Prozess verwendet wird.

ich habe bereits vor dem Verschieben die lvwFiles und imgList geleert.

Was mache ich falsch?

Imports System.IO
Public Class Form1
    Private sFolder As String = "D:\JT-Test\VRML_neu"
    Private sPattern As String = "*.png"
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Me.Show()
        showImages()
    End Sub
 
    Sub showImages()
        imgList.Images.Clear()
        lvwFiles.Items.Clear()
 
        Dim n As Integer = 0
        For Each sFile In Directory.GetFiles(sFolder, sPattern)
            imgList.Images.Add(Path.GetFileName(sFile), Image.FromFile(sFile))
            lvwFiles.Items.Add(Path.GetFileName(sFile), n)
 
            n += 1
        Next
    End Sub
 
    Private Sub cmdMerge_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles cmdMerge.Click
        lvwFiles.Items.Clear()
        imgList.Images.Clear()
        Dim sDateien As New Collections.ArrayList()
        For Each sFile As String In Directory.GetFiles(sFolder, sPattern)
            sDateien.Add(sFile)
        Next
        Dim iCount As Integer = sDateien.Count
        Dim n As Integer = 0
        While n < iCount
            Dim sDatei1 As String = sDateien(n)
            Dim sInhalt1 As String = File.ReadAllText(sDatei1)
            Dim m As Integer = 0
            While m < iCount
                Dim sDatei2 As String = sDateien(m)
                If sDatei1 <> sDatei2 Then
                    lstAusgabe.Items.Insert(0, Path.GetFileName(sDatei1) & _
                      "<->" & Path.GetFileName(sDatei2))
                    Application.DoEvents()
                    Dim sInhalt2 As String = File.ReadAllText(sDatei2)
                    If sInhalt1 = sInhalt2 Then
                        lstAusgabe.Items.Insert(0, "gleich")
                        Application.DoEvents()
                        File.Move(sDatei2, "D:\JT-Test\VRML_neu\Test\" & _
                          Path.GetFileName(sDatei2))
                        sDateien.Remove(sDatei2)
                        iCount = sDateien.Count
                        m -= 1
                    End If
                End If
                m += 1
            End While
            n += 1
        End While
        showImages()
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ListView -> Images wieder freigeben1.457met17.09.08 13:49
Re: ListView -> Images wieder freigeben836ModeratorFZelle17.09.08 15:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel