| |

VB.NET - Ein- und UmsteigerRe: Zuletzt geänderte Datei herausfinden | |  | Autor: Manfred X | Datum: 18.07.17 20:31 |
| Dazu ein paar deutliche Worte:
1. Ein Anwendungsprogramm hat in einem Windows-Systemordner nichts zu suchen.
2. Im Windows-Ordner stehen mindestens 100000 (einhunderttausend) Dateien.
Was soll in dieser Vielzahl gelistet oder überwacht werden?
Das Füllen des Listview mit dieser Menge dauert eine ganze Weile.
3. Im Windows-Ordner gibt es gewöhnlich Unterordner, deren Zugriffsbeschränkung
auch mit Admin-Berechtigung nicht direkt umgangen werden kann (Rückgriff auf
Sicherheitseinstellungen erforderlich.)
4. Die üblichen Framework-Methoden für Filesystem-Zugriffe scheitern an
solchen Sperren. Die Anwendung des Hinweises von Franki ist erforderlich.
Ich habe das mal in die "FileSystemStuff"-Klasse nachträglich hineingefrickelt
(= Moderatoren-übliche Bezeichnung für besch... Code).
Der modifizierte Code-Teil dieser Klasse:
Private _FileInformationList As New List(Of FileInformation)(500)
Private _FileSystemErrors As New List(Of String)
Private Sub Getfiles(ByVal oDir As IO.DirectoryInfo)
Dim oSubDir As IO.DirectoryInfo
Dim oFile As IO.FileInfo = Nothing
' alle Dateien im aktuellen Ordner
Try
For Each oFile In oDir.GetFiles()
With oFile
_FileInformationList.Add(New FileInformation(oFile))
If _FileInformationList.Count Mod 100 = 0 Then
RaiseEvent Progress _
(Me, New FilesystemStuffArgs(_FileInformationList.Count))
End If
End With
Next oFile
Catch ex As Exception
If oFile IsNot Nothing Then
_FileSystemErrors.Add(oFile.FullName & ": " & ex.Message)
End If
End Try
Try
For Each oSubDir In oDir.GetDirectories()
Getfiles(oSubDir)
Next oSubDir
Catch ex As Exception
_FileSystemErrors.Add(oDir.FullName & ": " & ex.Message)
End Try
End Sub
''' <summary>Abfrage der Angaben zu den Dateien in einem Ordner</summary>
''' <param name="folder">Ordner, dessen Dateien gelistet werden sollen</param>
''' <param name="so">Unterordner einbeziehen?</param>
Public Sub CreateFolderFileInfos(ByVal folder As String, _
Optional so As IO.SearchOption = IO.SearchOption.TopDirectoryOnly)
FileInformationArray = Nothing
If Not IO.Directory.Exists(folder) Then Exit Sub
Dim odir As New IO.DirectoryInfo(folder)
Getfiles(odir)
FileInformationArray = _FileInformationList.ToArray
RaiseEvent Finished _
(Me, New FilesystemStuffArgs(FileInformationArray.Length))
End Sub
Public ReadOnly Property ErrorMessages As String()
Get
Return _FileSystemErrors.ToArray
End Get
End Property Im Anwendungsformular kann die Event-Routine "FileStuff_Finished"
jetzt ergänzt werden (möglicherweise umfangreicher Infotext!):
Private Sub FileStuff_Finished(sender As Object, _
e As FileSystemStuff.FilesystemStuffArgs) Handles FileStuff.Finished
infotext = _
"Dateien sind gelistet worden " & vbCrLf & "Gesamtzahl: " & _
e.Count.ToString
Dim errors() As String = FileStuff.ErrorMessages
If errors IsNot Nothing AndAlso errors.Length > 0 Then
infotext &= (vbNewLine & "Fehler: ")
For i As Integer = 0 To errors.Length - 1
infotext &= (vbNewLine & errors(i))
Next i
End If
lblinfo.Invoke(New MethodInvoker(AddressOf SetInfoText))
ListView1.Invoke(New MethodInvoker(AddressOf SetFileList))
If FileStuff.FileInformationArray.Length > 0 Then
With fsw
.Filter = "*.*"
.Path = IO.Path.GetDirectoryName(FileStuff.FileInformationArray( _
0).fullpath)
.IncludeSubdirectories = True
.EnableRaisingEvents = True
End With
Else
fsw.EnableRaisingEvents = False
End If
End Sub |  |
 Zuletzt geänderte Datei herausfinden | 3.518 | TheExOne | 26.11.07 23:01 |   Re: Zuletzt geänderte Datei herausfinden | 2.336 | GPM | 27.11.07 01:19 |    Re: Zuletzt geänderte Datei herausfinden | 2.292 | TheExOne | 27.11.07 13:38 |     Re: Zuletzt geänderte Datei herausfinden | 1.775 | 00tommy | 11.07.17 21:02 |      Re: Zuletzt geänderte Datei herausfinden | 1.780 | Manfred X | 12.07.17 09:42 |       Re: Zuletzt geänderte Datei herausfinden | 1.726 | 00tommy | 13.07.17 21:32 |        Re: Zuletzt geänderte Datei herausfinden | 1.818 | Franki | 14.07.17 02:22 |        Liste Fileinformationen, Threading, Invoke .... | 1.924 | Manfred X | 14.07.17 08:52 |         Re: Liste Fileinformationen, Threading, Invoke .... | 1.689 | 00tommy | 15.07.17 17:38 |          Re: Liste Fileinformationen, Threading, Invoke .... | 1.736 | Manfred X | 16.07.17 14:43 |           Re: Liste Fileinformationen, Threading, Invoke .... | 1.875 | 00tommy | 16.07.17 20:19 |            Re: Liste Fileinformationen, Threading, Invoke .... | 1.704 | effeff | 16.07.17 22:19 |           Re: Liste Fileinformationen, Threading, Invoke .... | 1.709 | 00tommy | 17.07.17 06:58 |            Re: Liste Fileinformationen, Threading, Invoke .... | 1.707 | Manfred X | 17.07.17 10:18 |   Re: Zuletzt geänderte Datei herausfinden | 1.687 | 00tommy | 17.07.17 11:43 |    Re: Zuletzt geänderte Datei herausfinden | 1.794 | Manfred X | 17.07.17 13:27 |   Re: Zuletzt geänderte Datei herausfinden | 1.839 | 00tommy | 17.07.17 14:47 |    Re: Zuletzt geänderte Datei herausfinden | 1.717 | Manfred X | 17.07.17 18:54 |   Re: Zuletzt geänderte Datei herausfinden | 1.689 | 00tommy | 17.07.17 21:08 |    Re: Zuletzt geänderte Datei herausfinden | 1.702 | Manfred X | 18.07.17 06:10 |   Re: Zuletzt geänderte Datei herausfinden | 1.674 | 00tommy | 18.07.17 11:09 |    Re: Zuletzt geänderte Datei herausfinden | 1.674 | Manfred X | 18.07.17 13:19 |   Re: Zuletzt geänderte Datei herausfinden | 1.693 | 00tommy | 18.07.17 14:12 |    Re: Zuletzt geänderte Datei herausfinden | 1.680 | Manfred X | 18.07.17 20:31 |   Re: Zuletzt geänderte Datei herausfinden | 1.679 | 00tommy | 18.07.17 20:36 |    Re: Zuletzt geänderte Datei herausfinden | 1.817 | Manfred X | 18.07.17 21:26 |
 | 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
|
|