| |
Visual-Basic EinsteigerRe: Ordner, Unterordner und Dateien in Klasse/n speichern | | | Autor: Chamaeleon | Datum: 15.01.17 19:14 |
| Hier nochmal mein Ansatz (auch zu finden bei Herbers Excel Forum, dort allerdings auch ohne Erfolg bisher, Hust xD).
Ich habe mir eine Applikation gebastelt die mir unter Einbezug eines Quellenpfades (Ordner) alle darin befindlichen Unterordner und Dateien ausliest und diese in einer Listbox als Vorschau darstellt, das klappt auch alles wunderbar. Zusätzlich möchte ich aber die gefundenen Unterordner und deren Dateien in einer Klasse/n speichern. Soweit ich weiß brauche ich auf jedenfall ein Collection für die Unterordner und quasi dazu ein Collection für die Dateien eines Unterordners. Die Klasse/n soll/en die Struktur eines 2D-Array haben, jedenfalls stelle ich mir das so vor. Ansprechen möchte ich das dann wie folgt:
objOrdner.Name/Pfad 'Quellenordner Pfad bzw. Name
objOrdner.Unterordner(1).Name/Pfad 'Unterordner Pfad bzw. Name
objOrdner.Unterordner(1).Datei(1).Name/Pfad 'Vom ersten Unterordner der ersten Datei den Namen bzw. Pfad
objOrdner.Unterordner(1).Datei.Anzahl 'Gibt Anzahl der Dateien aus dem ersten Unterordner wieder.
Mit FSO hole ich mir bereits Dateien und lasse sie mir in einer Listbox anzeigen. Mit der Shell hole ich mir Detailierte Informationen. Was ich möchte, ist in der Listboc nach Ordner/Dateien zu filtern und ggf. direkt beim einlesen Daten zu manipulieren. Daher halte ich eine Klasse/n für sinnvoll.
Aktuell kann ich Unterordner und Dateien hinzufügen, nur haben die keine Zusammengehörigkeit, die ich aber möchte. Hier mein bisheriger Code:
'clsUnterordner
Option Explicit
Private m_objUnterordner As Collection
Private Sub Class_Initialize()
Set m_objUnterordner = New Collection
End Sub
Private Sub Class_Terminate()
Set m_objUnterordner = Nothing
End Sub
Public Property Get UnterordnerIndex(vntIndex As Variant) As clsEigenschaften
Set UnterordnerIndex = m_objUnterordner(vntIndex)
End Property
Public Property Get Unterordner() As Collection
Set Unterordner = m_objUnterordner
End Property
Public Property Get UnterordnerAnzahl() As Long
UnterordnerAnzahl = m_objUnterordner.Count
End Property
Public Function UnterordnerHinzufügen(strPfad As String, strName As String)
Dim objUnterordner As clsEigenschaften
If Exists(strPfad & strName) Then
MsgBox "Dieser Eintrag existiert bereits"
Else
Set objUnterordner = New clsEigenschaften
objUnterordner.Pfad = strPfad
objUnterordner.Name = strName
m_objUnterordner.Add objUnterordner, strPfad & strName
End If
End Function
Public Function Exists(vntIndex As Variant) As Boolean
On Error Resume Next
Exists = Not CBool(m_objUnterordner(vntIndex) Is Nothing)
End Function
Public Sub Remove(vntIndex As Variant)
m_objUnterordner.Remove vntIndex
End Sub 'clsDatei
Option Explicit
Private m_objDatei As Collection
Private Sub Class_Initialize()
Set m_objDatei = New Collection
End Sub
Private Sub Class_Terminate()
Set m_objDatei = Nothing
End Sub
Public Property Get DateiIndex(vntIndex As Variant) As clsEigenschaften
Set DateiIndex = m_objDatei(vntIndex)
End Property
Public Property Get Datei() As Collection
Set Datei = m_objDatei
End Property
Public Property Get DateiAnzahl() As Long
DateiAnzahl = m_objDatei.Count
End Property
Public Function DateiHinzufügen(strPfad As String, strName As String)
Dim objDatei As clsEigenschaften
If Exists(strPfad & strName) Then
MsgBox "Dieser Eintrag existiert bereits"
Else
Set objDatei = New clsEigenschaften
objDatei.Pfad = strPfad
objDatei.Name = strName
m_objDatei.Add objDatei, strPfad & strName
End If
End Function
Public Function Exists(vntIndex As Variant) As Boolean
On Error Resume Next
Exists = Not CBool(m_objDatei(vntIndex) Is Nothing)
End Function
Public Sub Remove(vntIndex As Variant)
m_objDatei.Remove vntIndex
End Sub 'clsEigenschaften
Option Explicit
Private m_strName As String
Private m_strPfad As String
Public Property Get Name() As Date
Name = m_strName
End Property
Public Property Get Pfad() As String
Pfad = m_strPfad
End Property
Public Property Let Name(strName As String)
m_strName = strName
End Property
Public Property Let Pfad(strPfad As String)
m_strPfad = strPfad
End Property | |
| 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 |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|