vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ordner, Unterordner und Dateien in Klasse/n speichern2.354Chamaeleon14.01.17 11:10
Re: Ordner, Unterordner und Dateien in Klasse/n speichern1.431Blackbox14.01.17 11:52
Re: Ordner, Unterordner und Dateien in Klasse/n speichern1.353Chamaeleon14.01.17 14:16
Re: Ordner, Unterordner und Dateien in Klasse/n speichern1.355Manfred X15.01.17 09:40
Re: Ordner, Unterordner und Dateien in Klasse/n speichern1.320Chamaeleon15.01.17 19:06
Re: Ordner, Unterordner und Dateien in Klasse/n speichern1.328Chamaeleon15.01.17 19:14
Kleine Spielerei ...1.394Manfred X17.01.17 08:35
Re: Kleine Spielerei ...1.333Chamaeleon20.01.17 19:41

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-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