| |
VB.NET - Ein- und UmsteigerRe: Liste Fileinformationen, Threading, Invoke .... | | | Autor: Manfred X | Datum: 16.07.17 14:43 |
| Die Liste mit den FileInfos befindet sich im Array "FileInformationArray".
Die Array-Klasse bietet die "Sort"-Methode zum Sortieren der Elemente, wobei u.a.
auf die "IComparable"-Schnittstelle der Array-Elemente zurückgegriffen werden kann.
Im Beispiel sind die Array-Elemente Instanzen der FileInformation-Klasse.
Diese Klasse benötigt deshalb eine Implementierung der Schnittstelle.
Sie sieht dann z.B. so aus:
Public Class FileInformation
Implements IComparable(Of FileInformation)
''' <summary>Name und Extensions der Datei</summary>
Public ReadOnly name As String
'''<summary>Name des Ordners/Unterordners, in dem sich die Datei
' befindet</summary>
Public ReadOnly folder As String
''' <summary>Laufwerk, Pfad und Name der Datei</summary>
Public ReadOnly fullpath As String
''' <summary>Länge der Datei in Bytes</summary>
Public ReadOnly length As Long
''' <summary>Datum der letzten Änderung</summary>
Public ReadOnly LastWriteTime As Date
''' <summary>Schreibschutz gesetzt?</summary>
Public ReadOnly IsReadonly As Boolean
Friend Sub New(fi As IO.FileInfo)
With fi
name = .Name
fullpath = .FullName
folder = IO.Path.GetFileName(.DirectoryName)
length = .Length
LastWriteTime = .LastWriteTime
IsReadonly = .IsReadOnly
End With
End Sub
Public Function DateTime_CompareTo(other As FileInformation) As Integer _
Implements System.IComparable(Of FileInformation).CompareTo
Dim diff As Long = Me.LastWriteTime.Ticks - other.LastWriteTime.Ticks
If Math.Abs(diff) < TimeSpan.TicksPerMinute Then
Return 0 'Differenz kleiner 1 Sekunde gilt als gleichzeitig !!!
ElseIf diff >= TimeSpan.TicksPerSecond Then
Return 1
Else
Return -1
End If
End Function
End Class Um das Sortieren des "FileInformationArray" gemäß dem "LastWriteTime"-Member komfortabel
durchführen zu können, wird in der Klasse "FilesystemStuff" eine entsprechende Methode
ergänzt:
Public Sub SortDateTime(ByVal sortorder As SortOrder)
Array.Sort(FileInformationArray)
If sortorder = Windows.Forms.SortOrder.Descending Then
Array.Reverse(FileInformationArray)
End If
End Sub Im Formular (Methode: SetFileList) kann das gefüllte Array sortiert werden.
Damit das Resultat besser aussieht, wird die Listbox "lboFiles"
durch ein Listview-Control ersetzt.
Dim lvwFileInformation As New ListView With _
{.Parent = Me, .Top = 170, .Size = New Size(300, 200)}
Private Sub SetFileList()
With lvwFileInformation
'Listview vorbereiten
.Items.Clear()
.Columns.Clear()
.View = View.Details
.Columns.Add("Name", 100)
.Columns.Add("LastWriteTime", 150)
.Columns.Add("Folder", 150)
'Sortieren des Array
FileStuff.SortDateTime(SortOrder.Descending)
'Array-Daten in ListviewItems eintragen
For i As Integer = 0 To FileStuff.FileInformationArray.Length - 1
Dim it As FileSystemStuff.FileInformation = _
FileStuff.FileInformationArray(i)
Dim lvi As ListViewItem = .Items.Add(it.name)
lvi.SubItems.Add(it.LastWriteTime.ToString)
lvi.SubItems.Add(it.folder)
Next i
End With
End Sub Das ausgetauschte Control erfordert eine weitere Anpassung beim Invoke:
Private Sub FileStuff_Finished(sender As Object, _
e As FileSystemStuff.FilesystemStuffArgs) Handles FileStuff.Finished
infotext = _
"Dateien sind gelistet worden " & vbCrLf & "Gesamtzahl: " & _
e.Count.ToString
lblinfo.Invoke(New MethodInvoker(AddressOf SetInfoText))
lvwFileInformation.Invoke(New MethodInvoker(AddressOf SetFileList))
End Sub | |
Zuletzt geänderte Datei herausfinden | 3.369 | TheExOne | 26.11.07 23:01 | Re: Zuletzt geänderte Datei herausfinden | 2.235 | GPM | 27.11.07 01:19 | Re: Zuletzt geänderte Datei herausfinden | 2.195 | TheExOne | 27.11.07 13:38 | Re: Zuletzt geänderte Datei herausfinden | 1.675 | 00tommy | 11.07.17 21:02 | Re: Zuletzt geänderte Datei herausfinden | 1.681 | Manfred X | 12.07.17 09:42 | Re: Zuletzt geänderte Datei herausfinden | 1.611 | 00tommy | 13.07.17 21:32 | Re: Zuletzt geänderte Datei herausfinden | 1.716 | Franki | 14.07.17 02:22 | Liste Fileinformationen, Threading, Invoke .... | 1.787 | Manfred X | 14.07.17 08:52 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.587 | 00tommy | 15.07.17 17:38 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.633 | Manfred X | 16.07.17 14:43 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.736 | 00tommy | 16.07.17 20:19 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.604 | effeff | 16.07.17 22:19 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.606 | 00tommy | 17.07.17 06:58 | Re: Liste Fileinformationen, Threading, Invoke .... | 1.604 | Manfred X | 17.07.17 10:18 | Re: Zuletzt geänderte Datei herausfinden | 1.587 | 00tommy | 17.07.17 11:43 | Re: Zuletzt geänderte Datei herausfinden | 1.685 | Manfred X | 17.07.17 13:27 | Re: Zuletzt geänderte Datei herausfinden | 1.696 | 00tommy | 17.07.17 14:47 | Re: Zuletzt geänderte Datei herausfinden | 1.605 | Manfred X | 17.07.17 18:54 | Re: Zuletzt geänderte Datei herausfinden | 1.561 | 00tommy | 17.07.17 21:08 | Re: Zuletzt geänderte Datei herausfinden | 1.604 | Manfred X | 18.07.17 06:10 | Re: Zuletzt geänderte Datei herausfinden | 1.570 | 00tommy | 18.07.17 11:09 | Re: Zuletzt geänderte Datei herausfinden | 1.574 | Manfred X | 18.07.17 13:19 | Re: Zuletzt geänderte Datei herausfinden | 1.581 | 00tommy | 18.07.17 14:12 | Re: Zuletzt geänderte Datei herausfinden | 1.585 | Manfred X | 18.07.17 20:31 | Re: Zuletzt geänderte Datei herausfinden | 1.582 | 00tommy | 18.07.17 20:36 | Re: Zuletzt geänderte Datei herausfinden | 1.682 | 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2024 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
|
|