vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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

VB.NET - Ein- und Umsteiger
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zuletzt geänderte Datei herausfinden3.518TheExOne26.11.07 23:01
Re: Zuletzt geänderte Datei herausfinden2.336GPM27.11.07 01:19
Re: Zuletzt geänderte Datei herausfinden2.292TheExOne27.11.07 13:38
Re: Zuletzt geänderte Datei herausfinden1.77500tommy11.07.17 21:02
Re: Zuletzt geänderte Datei herausfinden1.780Manfred X12.07.17 09:42
Re: Zuletzt geänderte Datei herausfinden1.72600tommy13.07.17 21:32
Re: Zuletzt geänderte Datei herausfinden1.818Franki14.07.17 02:22
Liste Fileinformationen, Threading, Invoke ....1.924Manfred X14.07.17 08:52
Re: Liste Fileinformationen, Threading, Invoke ....1.68900tommy15.07.17 17:38
Re: Liste Fileinformationen, Threading, Invoke ....1.736Manfred X16.07.17 14:43
Re: Liste Fileinformationen, Threading, Invoke ....1.87500tommy16.07.17 20:19
Re: Liste Fileinformationen, Threading, Invoke ....1.704effeff16.07.17 22:19
Re: Liste Fileinformationen, Threading, Invoke ....1.70900tommy17.07.17 06:58
Re: Liste Fileinformationen, Threading, Invoke ....1.707Manfred X17.07.17 10:18
Re: Zuletzt geänderte Datei herausfinden1.68700tommy17.07.17 11:43
Re: Zuletzt geänderte Datei herausfinden1.794Manfred X17.07.17 13:27
Re: Zuletzt geänderte Datei herausfinden1.83900tommy17.07.17 14:47
Re: Zuletzt geänderte Datei herausfinden1.717Manfred X17.07.17 18:54
Re: Zuletzt geänderte Datei herausfinden1.68900tommy17.07.17 21:08
Re: Zuletzt geänderte Datei herausfinden1.702Manfred X18.07.17 06:10
Re: Zuletzt geänderte Datei herausfinden1.67400tommy18.07.17 11:09
Re: Zuletzt geänderte Datei herausfinden1.674Manfred X18.07.17 13:19
Re: Zuletzt geänderte Datei herausfinden1.69300tommy18.07.17 14:12
Re: Zuletzt geänderte Datei herausfinden1.680Manfred X18.07.17 20:31
Re: Zuletzt geänderte Datei herausfinden1.67900tommy18.07.17 20:36
Re: Zuletzt geänderte Datei herausfinden1.817Manfred X18.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

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