|
| |

VB.NET - Ein- und Umsteiger| Ordnerstruktur mit ArrayLists nachbilden | |  | | Autor: vbtricks | | Datum: 05.03.05 19:05 |
| Hallo zusammen,
mein Programm soll mittels einer Klasse eine Ordnerstruktur nachbilden. Dazu habe ich zwei Structures eingeführt:
- vFileItem entspricht einer Datei
- vFolderItem entspricht einem Ordner.
Diese werden mittels ArrayLists verknüft.
Die Strukturdefinition sieht wie folgt aus:
Public Structure vFileItem
Public sName As String
Public lFileSize As Long
Public sLastModified As String
Public sExtraInfo As String
Public bActivated As Boolean
End Structure
Public Structure vFolderItem
Public sName As String
Public vSubFolders As ArrayList()
Public vFiles As ArrayList()
End Structure Nun muss ich allerdings auch Funktionen implementieren, dies wollte ich so tun:
Private Function AddFile(ByRef vParentFolder As vFolderItem, _
ByVal sName As String) As vFileItem
If Instr(1, sName, "/") > 0 Then
' there's another subfolder -> search subfolders
Dim sTemp As String
sTemp = Left(sName, Instr(1, sName, "\") - 1)
sName = Mid(sName, Instr(1, sName, "\") + 1)
' try to find the subfolder
Try
Dim myEnumerator As System.Collections.IEnumerator = _
vParentFolder.vSubFolders.GetEnumerator()
While myEnumerator.MoveNext()
If CType(myEnumerator.Current, vFolderItem).sName = sTemp Then
' run function recursively with the new subfolder
Return AddFile(myEnumerator.Current, sTemp)
End If
End While
Catch ex As Exception
End Try
' subfolder was not found, create it!
Dim NewFolder As vFolderItem
NewFolder.sName = sTemp
NewFolder.vSubFolders = New ArrayList() ' Fehler 1 =========
NewFolder.vFiles = New ArrayList() ' Fehler 1 ========
With vParentFolder.vSubFolders
.Add(NewFolder) ' Fehler 2 =======
Return AddFile(.Item(.Count - 1)) ' Fehler 2 ======
End With
Else
Try
' search for the file
Dim myEnumerator As System.Collections.IEnumerator = _
vParentFolder.vFiles.GetEnumerator()
While myEnumerator.MoveNext()
If CType(myEnumerator.Current, vFileItem).sName = sName Then
' file does already exist
' return reference to file
Return myEnumerator.Current
End If
End While
Catch ex As Exception
End Try
' file does not already exist -> create
Dim NewFile As vFileItem
NewFile.sName = sName
vParentFolder.vFiles.Add(NewFile) ' Fehler 2 =======
Return CType(vParentFolder.vFiles.Item(vParentFolder.vFiles.Count - 1), _
vFileItem)
End If
End Function Allerdings gibts hier einige Compiler-Fehler:
Fehler1:
Der Wert des Typs "System.Collections.ArrayList" kann nicht zu "1-dimensionales Array von System.Collections.ArrayList" konvertiert werden.
Fehler2:
"Count"/"Add"/"Item" ist kein Member von "System.Array".
Was mache ich hier falsch? vSubFolders und vFiles sind doch ArrayLists?
Danke im Voraus,
Stefan
Web: http://www.vbtricks.de.vu/
VBTricks.de.vu. Meine Webseite zu VB und anderen Programmiersprachen. Verschiedene fortgeschrittene OCXe und komplette Projekte sind im Sourcecode verf?gbar. |  |
 | 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! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
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
|
|