VisualBasic Dateiabfrage zeigt nicht alle Verknüpfungen an

dertroll94

Cadet 4th Year
Registriert
Okt. 2013
Beiträge
90
Hallo,

ich habe versucht ein Programm in VB zu erstellen mit welchem man den Inhalt eines beliebigen Ordners nach weiteren Unterordnern oder Dateien abfragen kann. Das Ergbnis wird dann in einer ListBox angezeigt und lässt sich in einer .txt Datei abspeichern.

Das Problem sieht wie folgt aus: Wenn ich z.B alle Dateien in der ListBox haben möchte die auf dem Desktop sind werden zwar die meisten angezeigt, jedoch fehlen auch viele, größenteils sind das Verknüpfungen (Vlc, Firefox usw.). Wenn ich aber z.b die Verküpfung vom VLC in einen Neuern Ordner auf den Desktop ziehe und diesen dann auf Dateien untersuche wird die Verküpfung angezeigt. WARUM? :D So geschichten wir "Computer", "Papierkorb" usw. werden auch nicht angezeigt. Woran liegt das, bzw. was muss ich ändern damit wirklich ALLE Dateien angezeigt werden?
Mit Ordnern gibt es es keine Probleme, da werden alle angezeigt.

Code:
            Dim path As String
            Dim files() As String
            Dim i As Integer
            Dim br As New FolderBrowserDialog

            br.Description = "Pfad suchen..."
            If br.ShowDialog() = Windows.Forms.DialogResult.OK Then
                path = br.SelectedPath
                files = Directory.GetFiles(path)
                For i = 0 To files.Count - 1
                    ListBox1.Items.Add(files(i))
                Next
            End If

So sieht der Code grundsätzlich aus für die Dateiabfrage. Bei Ordnern würde da dann einfach nur files = Directory.GetDirectories(path) stehen.

Im Anhang seht ihr wie das Programm beispielhaft aussieht, wenn der Desktop auf Datein untersucht wird. Sachen wie oben genannt werden dort nicht mit aufgelistet.

Julian
 

Anhänge

  • Ordnerliste.JPG
    Ordnerliste.JPG
    60,6 KB · Aufrufe: 419
Hi,

das ist kein Problem von Visual Basic!

Versuche es mit einem alternativen Explorer, wie z. B. Double Commander, und du siehst das selbe Ergebnis wie bei dir. Windows legt das Desktop in mehreren Ordnern ab. Suche mal nach 'C:\Users\Public\Desktop' (gilt für Windows 7) und du wirst die fehlenden Einträge finden. Daneben gibt es noch Desktops für den Administrator, für 'All Users' usw.

Andere Symbole wie für den Papierkorb sind gar nicht in den Ordnern vorhanden, sondern werden von Windows auf dem Desktop angezeigt.

Gruß
Anton
 
Das ist auch kein Problem von VB oder deiner Abfrage. Hast du selbst schon mal geprüft, was du in den Verzeichnissen siehst? Wahrscheinlich genauso viel, wie dein Prog. Das Problem dabei: Der Desktop z.B. wird aus mindestens 2 Verzeichnissen erstell (All User und der angemeldete Nutzer). Wenn du nun nur einen Desktoppfad durchsuchst, fehlt dir alles, was im alluser/desktop liegt.
 
ok vielen dank ;)
Dann habe ich noch eine andere frage, die nichts mit der ersten fragen zu tun hat, sich aber trotzdem auf vb bezieht. ich hoffe mir kann auch da weitergeholfen werden.

wie kann ich überprüfen lassen ob in der listbox in irgendeiner zeile z.b das wort "mozilla" vorkommt?
 
Es sollte APIs für den Zugriff auf die Shell geben. Von da kannst du dir die Sachen holen, die auf dem Desktop und in anderen Speziellen Verzeichnissen stecken, die nicht "real" existieren, sondern eben von der Shell erzeugt werden.
 
wie kann ich überprüfen lassen ob in der listbox in irgendeiner zeile z.b das wort "mozilla" vorkommt?

Code:
    For Each x In ListBox1.Items
      If InStr(x, "mozilla") > 0 Then
        
      End If
    Next
 
Zurück
Oben