| |
VB.NET - Ein- und Umsteigeralle txt Dateien suchen und auflisten | | | Autor: Marty** | Datum: 13.02.19 21:16 |
| Hallo,
ich versuche gerade alle txt Dateien in eine Listbox einzutragen
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
Button1.Click
For Each foundFile As String In My.Computer.FileSystem.GetFiles(
My.Computer.FileSystem.SpecialDirectories.MyDocuments,
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.txt")
ListBox1.Items.Add(foundFile)
Next
End Sub Leider bekomme ich immer die Fehlermeldung:
Unauthorized Access Exception wurde nicht behandelt.
Wie kann ich den Fehler abfangen ? | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Manfred X | Datum: 14.02.19 10:16 |
| Hallo!
Probiere mal ....
Private Sub Getfiles(ByVal Folder As IO.DirectoryInfo,
ByVal files As List(Of String), errors As List(Of String))
Dim SubFldInf As IO.DirectoryInfo
Dim FileInf As IO.FileInfo
'alle Dateien des übergebenen Ordners auflisten
Try
For Each FileInf In Folder.EnumerateFiles()
Try
files.Add(FileInf.FullName)
Catch ex As Exception
errors.Add(FileInf.FullName)
End Try
Next FileInf
'Für jedes Unterverzeichnis erneut rufen ...
For Each SubFldInf In Folder.EnumerateDirectories()
Try
Getfiles(SubFldInf, files, errors)
Catch ex As Exception
errors.Add(SubFldInf.FullName)
End Try
Next SubFldInf
Catch ex As Exception
errors.Add(Folder.FullName)
End Try
End Sub Anwendung:
Dim files As New List(Of String), errors As New List(Of String)
Dim fld As String = "C:\....."
Getfiles(New IO.DirectoryInfo(fld), files, errors) | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Marty** | Datum: 14.02.19 15:43 |
| und wie kann ich jetzt z.B. alle *.txt auflisten der Festplatte C:\ ?
macht noch nicht klick | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Manfred X | Datum: 14.02.19 17:26 |
| Indem Du einen zusätzlichen Parameter einbaust,
oder die Ergebnisliste filterst
Private Sub Getfiles(ByVal Folder As IO.DirectoryInfo,
ByVal Searchpattern As String,
ByVal files As List(Of String), errors As List(Of String))
Dim SubFldInf As IO.DirectoryInfo
Dim FileInf As IO.FileInfo
'alle Dateien des übergebenen Ordners auflisten
Try
For Each FileInf In Folder.EnumerateFiles(Searchpattern)
Try
files.Add(FileInf.FullName)
Catch ex As Exception
errors.Add(FileInf.FullName)
End Try
Next FileInf
'Alle untergeordneten Ordner bearbeiten
For Each SubFldInf In Folder.EnumerateDirectories()
Try
Getfiles(SubFldInf, Searchpattern, files, errors)
Catch ex As Exception
errors.Add(SubFldInf.FullName)
End Try
Next SubFldInf
Catch ex As Exception
errors.Add(Folder.FullName)
End Try
End Sub Anwendung:
Dim files As New List(Of String), errors As New List(Of String)
Dim fld As String = "C:\users"
Getfiles(New IO.DirectoryInfo(fld), "*.txt", files, errors) In "Files" stehen die Dateipfade, in "errors" die Ordner bzw. Dateien,
die für den Zugriff gesperrt sind. | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Marty** | Datum: 14.02.19 20:53 |
| Bekomm es leider nicht gebacken. Könnt ich vielleicht noch a Beispiel haben | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Manfred X | Datum: 14.02.19 23:11 |
| Ein Windows.Form.Form ....
Die Getfiles-Methode von oben muß ergänzt werden.
Public Class frmFileList
Dim WithEvents btnFolder As New Button With
{.Parent = Me, .Width = 300, .Text = "Ordner wählen"}
Dim bsFolder As New BindingSource
Dim lboFiles As New ListBox With
{.Parent = Me, .Width = 400, .Top = 50, .Height = 300,
.DataSource = bsFolder, .HorizontalScrollbar = True}
Dim _folder As String = ""
Dim _files As New List(Of String)
Dim _errors As New List(Of String)
Private Sub frmFileList_Load(sender As Object,
e As EventArgs) Handles Me.Load
Me.Size = New Size(420, 400)
Me.FormBorderStyle = FormBorderStyle.FixedDialog
End Sub
Private Sub btnFolder_Click(sender As Object,
e As EventArgs) Handles btnFolder.Click
Using fbd As New FolderBrowserDialog
With fbd
.Description = "Ordner angeben"
.ShowNewFolderButton = False
.SelectedPath = _folder
If .ShowDialog() = DialogResult.Cancel Then Exit Sub
_folder = .SelectedPath
btnFolder.Text = _folder
_errors.Clear() : _files.Clear()
Me.Enabled = False
Getfiles(New IO.DirectoryInfo(_folder), "*.txt",
_files, _errors)
Me.Enabled = True
bsFolder.DataSource = _files
bsFolder.ResetBindings(False)
End With
End Using
End Sub
End Class | |
Re: alle txt Dateien suchen und auflisten | | | Autor: effeff | Datum: 16.02.19 18:52 |
| Du versuchst, Dateien aufzulisten, die in Scheinordnern liegen...
Siehe https://www.computerbild.de/artikel/cb-Tipps-Software-Windows-Warum-gibt-es-doppelte-Ordner-10706663.html.
Du kannst das z. B. so umgehen:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
Button1.Click
Dim StartDir As String = _
My.Computer.FileSystem.SpecialDirectories.MyDocuments
ListFiles(StartDir)
ListSubDirs(StartDir)
End Sub
Private Function IsJunction(ByVal DirName As String) As Boolean
Dim dInfo As New System.IO.DirectoryInfo(DirName)
Dim Attribute As String = dInfo.Attributes.ToString
If Attribute.Contains("ReparsePoint") Then
Return True
Else
Return False
End If
End Function
Private Sub ListSubDirs(ByVal DirName As String)
For Each d As String In System.IO.Directory.GetDirectories(DirName)
If Not IsJunction(d) Then
ListFiles(d)
ListSubDirs(d)
End If
Next
End Sub
Private Sub ListFiles(ByVal DirName As String)
For Each f As String In System.IO.Directory.GetFiles(DirName)
ListBox1.Items.Add(f)
Next
End Sub
End Class EALA FREYA FRESENA | |
Re: alle txt Dateien suchen und auflisten | | | Autor: Manfred X | Datum: 17.02.19 09:24 |
| Hallo!
Es gibt diverse Gründe, weshalb ein Ordner oder eine Datei
nicht gelistet werden kann, z.B.
- fehlende Zugriffsrechte des Users
- Laufwerk nicht bereit
- Fehler im Dateisystem
In den meisten Fällen kommt man deshalb um eine Ausnahmebehandlung
nicht herum. Den Try--Catch--Block würde ich deshalb ergänzen. | |
| 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 |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. 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
|