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

Visual-Basic Einsteiger
ROOT-Verzeichnis-Problem in ListView-Element 
Autor: Brian
Datum: 30.07.02 09:20

Moin,

habe Probleme mit der Darstellung des Root-VErzeichnisses in einem ListView-Steuerelement.

Folgende Vorgeschichte:

Ich entwickel für einen Kunden ein FTP-Programm für den innerbetrieblichen Austausch von Dateien, wobei der Kunde mehrere Standorte in Deutschland hat.
Deshalb auch das FTP-Programm.

In einer *.ini-Datei werden folgende Einträge gemacht.
ADMIN=0 oder 1 (wobei 1 ADMIN=True dartsellt)
Wenn er Admin ist, dann darf er Verzeichnisse anlegen, Löschen oder umbenennen.
Egal es funktioniert ja.

Jetzt wird die Anzahl der Oberverzeichnisse angezeigt.
ANZAHL=4

Und jetzt die eigendlichen (Ober)Verzeichnisse
1=asd2:1
2=asd2:0
3=asd3:0
4=asd4:1

Hier werden die voprhandenen Verzeichnisse genannt und mit 1 oder 0 gekennzeichnet, wobei die 1 aussagt, dass der Benutzer das Verzeichnis sehen darf.
Aber egal...es funktioniert und ist nur ZUsatzinformation für euch.

Jetzt zum eigendlichen Problem.

Ich logge mich auf meinem FTP-Server ein und im ListView-Steuerelement werden alle Verzeichnisse sichtbar, welche mit 1 (*.ini-Datei) gekennzeichnet wurden.
Soweit korrekt.
Jetzt gehe ich in ein Verzeichnis rein und im ListView-Steuerelement wird ein Pfeil nach oben gezeigt, welcher anzeigt, dass ich ein Verzeichnis höher gehen kann.
Soweit korrekt.
Wenn ich jetzt aber diesen Pfeil anklicke und nach oben gehe, dann befinde ich mich ja jetzt eigendlich im Root-Verzeichnis. Er zeigt mir jetzt aber immer noch den Pfeil nach oben an.
Ich komme einfach nicht auf die Lösung und habe euch mal nachfolgend einen Teil des Codes zusammengestellt.


Nachfolgend die Funktion, welche für das Auslesen der Verzeichnisse, Ordner und Dateien zuständig ist.

Private Sub FTP_InitList()
 
  '----------------------------------------------------------------------------
  ' ---------
  'PARAMETER : keine
 
  'RETURNS : keine
 
  'ERRORS : keine
 
  'BESCHREIBUNG : - Auslesen aller Verzeichnisse, Ordner oder Dateien im 
  ' entsprechen-
  '                 den Pfad
  '----------------------------------------------------------------------------
  ' ---------
 
  Dim nCount As Long
  Dim i As Long
  Dim sFolders() As String
  Dim sFiles() As String
  Dim nResult As Long
  Dim strGesamt As String
  Dim strEndung As String
  Dim intOrdner As Integer
  Dim intDateien As Integer
 
  'Fehlerbehandlungsroutine
  On Error GoTo ErrorHandler
 
    gintOrdner = 0
    gintDateien = 0
 
    Screen.MousePointer = vbHourglass
    With ListView1.ListItems
      .Clear
 
 
      ' Befinden wir uns im ROOT-Verzeichnis?
      'Wenn JA, dann...
      If (VBEX_FTPCurDir(hSocket) = "/") Then
 
        'Aufruf Funktion aus Modul modDOVerwaltung
        '***INFO: War vorher auf True gesetzt!!!
        Call fktReadFolder(True)
 
        'Aufruf Funktion aus Modul modDOVerwaltung
        Call fktReadFile
 
        Call FTP_VerzeichnisAnzeigen
 
      Else
 
        'Aufruf Funktion aus Modul modDOVerwaltung
        '***INFO: War vorher auf False gesetzt!!!
        Call fktReadFolder(False)
 
        'Aufruf Funktion aus Modul modDOVerwaltung
        Call fktReadFile
 
        Call FTP_VerzeichnisAnzeigen
 
      End If
    End With
 
    Me.lblElementeZahl.Caption = ""
    Me.lblElementeZahl.Caption = " Ordner: " & gintOrdner & "      /      " & _
      "Dateien : " & gintDateien
 
 
 
    Screen.MousePointer = vbNormal
 
  Exit Sub
 
ErrorHandler:
  MsgBox strError & " (Funktion: `FTP_InitList()´) "
 
End Sub
 
Private Sub FTP_VerzeichnisAnzeigen()
 
  '----------------------------------------------------------------------------
  ' ---------
  'PARAMETER : keine
 
  'RETURNS : keine
 
  'ERRORS : keine
 
  'BESCHREIBUNG : - Auslesen aller Verzeichnisse, Ordner oder Dateien im 
  ' entsprechen-
  '                 den Pfad
  '----------------------------------------------------------------------------
  ' ---------
 
  'Fehlerbehandlungsroutine
  On Error GoTo ErrorHandler
 
    Me.lblPath.Caption = ""
 
    ' aktuellen Pfad in einem Label-Feld anzeigen
    Me.lblPath.Caption = VBEX_FTPCurDir(hSocket)
 
  Exit Sub
 
ErrorHandler:
  MsgBox strError & " (Funktion: `FTP_VerzeichnisAnzeigen()´) "
 
End Sub
Weitere Funktionen:

Public Function fktReadFolder(ByVal Root As Boolean)
 
  '======================================================================
  '
  ' Bezeichnung  : fktReadFolder ()
  ' BESCHREIBUNG : -  Auslesen aller Ordner auf dem FTP-Server aus dem
  '                   Verzeichnis in dem man sich gerade befindet
  '
  ' Datum TTMMJJ : 15.07.2002
  ' Entwickler   : Brian Schwartz
  '
  '----------------------------------------------------------------------
  '
  ' PARAMETER    : Root as Boolean
  ' RUECKGABEWERT: True oder False
  ' Fehlerbehand.: keine vorhanden
  ' History      : 15.07.2002 - Start Entwicklung
  '                18.07.2002 - Aenderung der Funktion
  '
  '======================================================================
 
    Dim nCount As Long
    Dim i As Long
    Dim j As Integer
    Dim sFolders() As String
    Dim nResult As Long
    Dim strGesamt As String
    Dim strEndung As String
    Dim intOrdner As Integer
    Dim intDateien As Integer
    Dim intBerechtigung As Integer
    Dim strVerzeichnis As String
    Dim vParts As Variant
    Dim intAnzahl As Integer
 
    ReDim sFolders(5000)
 
    intAnzahl = GetINISetting(gstrINIFileName, "Verzeichnisse", "Anzahl", "")
 
    gintOrdner = 0
 
    If Root = False Then
      frmMain.ListView1.ListItems.Add , , "  ..", , 3
    End If
    ' zunächst Ordner ermitteln
    nCount = VBEX_FTPFolderList(hSocket, sServer, sFolders())
    If nCount >= 0 Then
      If nCount > UBound(sFolders) Then nCount = UBound(sFolders)
        For i = 0 To nCount
          If Root Then
            For j = 1 To intAnzahl
              vParts = Split(arrVerzeichnisse(j), ":")
              strVerzeichnis = vParts(0)
              intBerechtigung = vParts(1)
              If sFolders(i) = strVerzeichnis Then
                If intBerechtigung = 1 Then
                  gintOrdner = gintOrdner + 1 'Anzahl Ordner für lblElemente 
                  ' ermitteln
                  frmMain.ListView1.ListItems.Add , , sFolders(i), , 1
                End If
                Exit For
              End If
            Next j
 
          Else
           gintOrdner = gintOrdner + 1 'Anzahl Ordner für lblElemente ermitteln
           frmMain.ListView1.ListItems.Add , , sFolders(i), , 1
          End If
        Next i
    End If
    Erase sFolders
 
End Function
 
Public Function fktReadFile()
 
  '======================================================================
  '
  ' Bezeichnung  : fktReadFile ()
  ' BESCHREIBUNG : Auslesen aller Dateien in dem Verzeichnis wo man sich
  '                gerade befindet
  '
  ' Datum TMJ    : 18.07.2002
  ' Entwickler   : Brian Schwartz
  '
  '----------------------------------------------------------------------
  '
  ' PARAMETER    : keine vorhanden
  ' RUECKGABEWERT: keine vorhanden
  ' Fehlerbehand.: keine vorhanden
  ' History      : 18.07.2002 - Start Entwicklung
  '
  '======================================================================
 
    Dim nCount As Long
    Dim i As Long
    Dim sFiles() As String
    Dim nResult As Long
    Dim strGesamt As String
    Dim strEndung As String
    Dim intOrdner As Integer
    Dim intDateien As Integer
 
    ReDim sFiles(5000)
 
    nCount = VBEX_FTPFileList(hSocket, sServer, sFiles())
    If nCount >= 0 Then
      If nCount > UBound(sFiles) Then nCount = UBound(sFiles)
      gintDateien = nCount + 1 'Anzahl Dateien für lblElemente ermitteln
      For i = 0 To nCount
        strEndung = Right(sFiles(i), 4)
        If strEndung = ".fis" Then
          'wenn Endung = `.fis´, dann nix machen
          gintDateien = gintDateien - 1
          If gintDateien < 0 Then gintDateien = 0
        Else
          'ermitteln und anzeigen
          frmMain.ListView1.ListItems.Add , , sFiles(i), , 2
        End If
      Next i
    End If
    Erase sFiles
 
End Function
Hoffentlich kann mir jetzt noch jemand helfen, dann wäre ich glücklich.
Bei der Gelegenheit. Das Label mit dem Aktuellen Pfad in der Funktion FTP_VerzeichnisAnzeigen aktualisiert sich auch nicht. Gibt es da vielleicht auch einen Trick?

Vielen Dank für die Hilfe und Mühe...
Das Programm funktioniert so weit recht gut. Nur die kleinen Bugs machen mir Probleme.

Viele Grüsse sendet
Brian
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ROOT-Verzeichnis-Problem in ListView-Element471Brian30.07.02 09:20
Re: ROOT-Verzeichnis-Problem in ListView-Element311ModeratorDieter30.07.02 10:14
Funktioniert wunderbar, Dieter! Danke...aber woran lags jetz...231Brian30.07.02 10:24
Re: Funktioniert wunderbar, Dieter! Danke...aber woran lags ...237ModeratorDieter30.07.02 11:00
Sehr informativ, Danke! Und wie...238Brian30.07.02 13:32
Re: Sehr informativ, Danke! Und wie...232ModeratorDieter30.07.02 13:45
SUPER! Gibt es ne Kaffekasse bei euch? ...236Brian30.07.02 14:27
Info ist unterwegs (oT)219ModeratorDieter30.07.02 14:41
und was ist mit Tee? (o.W.)217Elwood30.07.02 14:41
Müssen die anderen halt weniger Wasser nehmen! (oT)237Brian30.07.02 14:46

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