Rubrik: Dateisystem · Dateien allgemein | VB-Versionen: VB4, VB5, VB6 | 07.02.01 |
Datei-Mehrfachauswahl an eine ListBox übergeben Dieser Tipp zeigt, wie Sie über den Windows-CommonDialog eine Mehrfach-Dateiauswal realisieren... | ||
Autor: Heinz Prelle | Bewertung: | Views: 22.607 |
www.visual-basic5.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Dieser Tipp demonstriert, wie Sie über den Windows-CommonDialog eine Mehrfach-Dateiauswal realisieren und nach dem Bestätigen der Auswahl alle ausgewählten Dateien in eine Listbox speichern.
' Bsp: CommonDialog -Dateinamenübergabe an ' eine ListBox. ' Mehrfachauswahl durch das gesetzte Flag möglich. ' Zum Selektieren die "Shift"-Taste gedrückt halten ' und dann die Ok-Taste im Dialog drücken. ' Die ausgewählten Dateien werden jetzt an die ' ListBox uebergeben. Public Function GetData() Dim strFileNames As String, strNextFileName As String Dim intPosDelim As Integer ' Es sollen alle Dateien in der Dialog-Box angezeigt werden. CommonDialog1.filename = "*.*" ' Flags zum markieren von mehreren Dateien, ' und zur Explorer-Style Ansicht CommonDialog1.Flags = &H200 + &H80000 CommonDialog1.Action = 1 ' Alle Daten der Dialog-Box werden in die Variable geschrieben strFileNames = CommonDialog1.filename ' Wenn die Variable nur noch das vbNullChar enthält, wird aufgehört Do While Not InStr(strFileNames, vbNullChar) = 0 ' Falls im String noch ein Pfad steht, so wird dieser ' in die Textbox geschrieben. If InStr(strFileNames, "\") = 3 Then ' Feststellen wo der erste vbNullChar ist (vor der ersten Datei !) intPosDelim = InStr(strFileNames, vbNullChar) ' Den Pfad extrahieren, und ein abschließendes "\" setzen Text1.Text = Left(strFileNames, intPosDelim - 1) & "\" ' Die Variable enthält nun nur noch die Dateien ' (das erste vbNullChar wird weggelassen) strFileNames = Mid$(strFileNames, intPosDelim + 1) Else ' Das erste vbNullChar finden (nach der ersten Datei) intPosDelim = InStr(strFileNames, vbNullChar) ' Von rechts alles in die neue Variable schreiben, ' bis zum vbNullChar strNextFileName = Mid$(strFileNames, 1, intPosDelim - 1) ' Die Variable wird ohne die eben genutzte Datei ' zurückgeschrieben strFileNames = Mid$(strFileNames, intPosDelim + 1) ' Die extrahierte Datei wird zur ListBox hinzugefügt List1.AddItem strNextFileName End If Loop End Function