EDN Admin
Well-known member
Im working on a program that lists all of the files on all of the drives on my computer. Id appreciate any comments. To use the program: Start a new Windows Forms application and replace the code on Form1 with the code listed here.
<span style="font-family:Courier new <span style="color:#0000ff Imports<span> System.IO<br/>
<span style="color:#0000ff Imports<span> System.ComponentModel<br/>
<span style="color:#0000ff Imports<span> System.Globalization<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Class<span> Form1<br/>
<span style="color:#0000ff Dim<span> Tabs <span style="color:#0000ff As<span> <span style="color:#0000ff New<span> MyTabControl<br/>
<span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> Form1_FormClosing(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> FormClosingEventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff Me<span>.FormClosing<br/>
<span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> TP <span style="color:#0000ff As<span> MyTabPage <span style="color:#0000ff In<span> <span style="color:#0000ff Me<span>.Tabs.TabPages<br/>
<span style="color:#0000ff If<span> TP.LV.BGW.IsBusy <span style="color:#0000ff Then<span> TP.LV.BGW.CancelAsync()<br/>
<span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> Form1_Load(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff MyBase<span>.Load<br/>
<span style="color:#0000ff Me<span>.Size = <span style="color:#0000ff New<span> Size(800, 600)<br/>
<span style="color:#0000ff Me<span>.Tabs.TabPages.Clear()<br/>
<span style="color:#0000ff Me<span>.Tabs.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff Me<span>.Tabs.Dock = DockStyle.Fill<br/>
<span style="color:#0000ff Dim<span> Drives() <span style="color:#0000ff As<span> DriveInfo = DriveInfo.GetDrives<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> Drives.Count - 1<br/>
<span style="color:#0000ff If<span> Drives(I).IsReady <span style="color:#0000ff Then<br/>
<span> Tabs.TabPages.Add(<span style="color:#0000ff New<span> MyTabPage(Drives(I)))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff If<br/>
<span> <span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyTabControl<br/>
<span style="color:#0000ff Inherits<span> TabControl<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyTabPage<br/>
<span style="color:#0000ff Inherits<span> TabPage<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Dim<span> VScrl <span style="color:#0000ff As<span> <span style="color:#0000ff New<span> VScrollBar<br/>
<span style="color:#0000ff Dim<span> Lbl <span style="color:#0000ff As<span> TabPageLabel<br/>
<span style="color:#0000ff Friend<span> LV <span style="color:#0000ff As<span> MyListView<br/>
<span style="color:#0000ff Dim<span> StartTime <span style="color:#0000ff As<span> DateTime<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
StartTime = Now<br/>
<span style="color:#0000ff Me<span>.Text = DI.Name + <span style="color:#a31515 " Loading"<br/>
<span> <span style="color:#0000ff Me<span>.Lbl = <span style="color:#0000ff New<span> TabPageLabel(DI)<br/>
<span style="color:#0000ff Me<span>.Lbl.Dock = DockStyle.Top<br/>
<span style="color:#0000ff Me<span>.Lbl.Parent = <span style="color:#0000ff Me<br/>
<span> LV = <span style="color:#0000ff New<span> MyListView(<span style="color:#0000ff Me<span>.DI)<br/>
<span style="color:#0000ff Me<span>.LV.Top = <span style="color:#0000ff Me<span>.Lbl.Bottom<br/>
<span style="color:#0000ff Me<span>.LV.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff Me<span>.VScrl.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.LV.BGW.RunWorkerCompleted, <span style="color:#0000ff AddressOf<span> LVBGW_Complete<br/>
<span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.VScrl.ValueChanged, <span style="color:#0000ff AddressOf<span> VScrl_Changed<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> VScrl_Changed(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs)<br/>
<span style="color:#0000ff Me<span>.LV.LoadLV(VScrl.Value)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> LVBGW_Complete(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> RunWorkerCompletedEventArgs)<br/>
<span style="color:#0000ff Me<span>.LV.TotalItems = 0<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> 2<br/>
<span style="color:#0000ff Me<span>.LV.TotalItems += <span style="color:#0000ff Me<span>.LV.LVIs(I).Count<br/>
<span style="color:#0000ff Next<br/>
<span> VScrl.Maximum = <span style="color:#0000ff Me<span>.LV.TotalItems<br/>
<span style="color:#0000ff Me<span>.Lbl.Text += <span style="color:#a31515 " Files = "<span> + <span style="color:#0000ff Me<span>.LV.TotalItems.ToString + <span style="color:#a31515 " Time to load = "<span> + Fix(Now.Subtract(StartTime).TotalSeconds).ToString<br/>
<span style="color:#0000ff Me<span>.LV.LoadLV(<span style="color:#0000ff Me<span>.VScrl.Value)<br/>
<span style="color:#0000ff Me<span>.Text = DI.Name<br/>
<span style="color:#0000ff DirectCast<span>(sender, MyBackGroundWorker).Dispose()<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> MyTabPage_Resize(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff Me<span>.Resize<br/>
<span style="color:#0000ff Me<span>.LV.Width = <span style="color:#0000ff Me<span>.ClientRectangle.Width - <span style="color:#0000ff Me<span>.VScrl.Width<br/>
<span style="color:#0000ff Dim<span> BaseWidth <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = <span style="color:#0000ff Me<span>.LV.Columns(1).Width + <span style="color:#0000ff Me<span>.LV.Columns(2).Width + 500<br/>
<span style="color:#0000ff Me<span>.LV.Columns(0).Width = 198 + (<span style="color:#0000ff Me<span>.LV.Width - BaseWidth) 2<br/>
<span style="color:#0000ff Me<span>.LV.Columns(3).Width = 298 + (<span style="color:#0000ff Me<span>.LV.Width - BaseWidth) 2<br/>
<span style="color:#0000ff Me<span>.VScrl.Left = <span style="color:#0000ff Me<span>.LV.Right<br/>
<span style="color:#0000ff Me<span>.LV.Top = <span style="color:#0000ff Me<span>.Lbl.Bottom<br/>
<span style="color:#0000ff Me<span>.LV.Height = <span style="color:#0000ff Me<span>.ClientRectangle.Height - <span style="color:#0000ff Me<span>.LV.Top<br/>
<span style="color:#0000ff Me<span>.VScrl.Top = <span style="color:#0000ff Me<span>.LV.Top + 18<br/>
<span style="color:#0000ff Me<span>.VScrl.Height = <span style="color:#0000ff Me<span>.LV.Height - 18<br/>
<span style="color:#0000ff Me<span>.LV.DisplayedLines = ((<span style="color:#0000ff Me<span>.Height - 18) (<span style="color:#0000ff Me<span>.FontHeight + 4)) - 2<br/>
<span style="color:#0000ff Me<span>.VScrl.LargeChange = <span style="color:#0000ff Me<span>.LV.DisplayedLines<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.LV.TotalItems > 0 <span style="color:#0000ff Then<span> <span style="color:#0000ff Me<span>.LV.LoadLV(<span style="color:#0000ff Me<span>.VScrl.Value)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> TabPageLabel<br/>
<span style="color:#0000ff Inherits<span> Label<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.AutoSize = <span style="color:#0000ff False<br/>
<span> <span style="color:#0000ff Dim<span> TotalSize <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = <span style="color:#0000ff CDec<span>(DI.TotalSize / 1000000000).ToString(<span style="color:#a31515 "F"<span>)<br/>
<span style="color:#0000ff Dim<span> TotalFreeSpace <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = <span style="color:#0000ff CDec<span>(DI.TotalFreeSpace / 1000000000).ToString(<span style="color:#a31515 "F"<span>)<br/>
<span style="color:#0000ff Me<span>.TextAlign = ContentAlignment.MiddleLeft<br/>
<span style="color:#0000ff Me<span>.Text = <span style="color:#a31515 "Label = "<span> + DI.VolumeLabel + _<br/>
<span style="color:#a31515 " Capacity = "<span> + TotalSize + _<br/>
<span style="color:#a31515 " Free Space = "<span> + TotalFreeSpace + _<br/>
<span style="color:#a31515 " Type = "<span> + DI.DriveType.ToString + _<br/>
<span style="color:#a31515 " Format = "<span> + DI.DriveFormat<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyListView<br/>
<span style="color:#0000ff Inherits<span> ListView<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Friend<span> BGW <span style="color:#0000ff As<span> MyBackGroundWorker<br/>
<span style="color:#0000ff Friend<span> LVIs(2) <span style="color:#0000ff As<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
<span style="color:#0000ff Me<span>.Scrollable = <span style="color:#0000ff False<br/>
<span> BGW = <span style="color:#0000ff New<span> MyBackGroundWorker(<span style="color:#0000ff Me<span>.DI)<br/>
BGW.RunWorkerAsync(LVIs)<br/>
<span style="color:#0000ff Me<span>.View = View.Details<br/>
<span style="color:#0000ff Me<span>.GridLines = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "File"<span>, 200)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Ext"<span>, 70)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Size"<span>, 70)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Directory"<span>, 300)<br/>
<span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.ColumnClick, <span style="color:#0000ff AddressOf<span> Me_ColumnClick<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> Me_ColumnClick(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> ColumnClickEventArgs)<br/>
Col = e.Column<br/>
Ascending(Col) = <span style="color:#0000ff Not<span> Ascending(Col)<br/>
LVIs(0).Sort(<span style="color:#0000ff AddressOf<span> CompareByColumn)<br/>
<span style="color:#0000ff Me<span>.LoadLV(StartLine)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Dim<span> Col <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Dim<span> Ascending(3) <span style="color:#0000ff As<span> <span style="color:#0000ff Boolean<br/>
<span> <span style="color:#0000ff Function<span> CompareByColumn(<span style="color:#0000ff ByVal<span> X <span style="color:#0000ff As<span> ListViewItem, <span style="color:#0000ff ByVal<span> Y <span style="color:#0000ff As<span> ListViewItem) <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff If<span> Col = 2 <span style="color:#0000ff Then<br/>
<span> <span style="color:#0000ff Dim<span> IX <span style="color:#0000ff As<span> <span style="color:#0000ff Long<span> = <span style="color:#0000ff Long<span>.Parse(X.SubItems(Col).Text)<br/>
<span style="color:#0000ff Dim<span> IY <span style="color:#0000ff As<span> <span style="color:#0000ff Long<span> = <span style="color:#0000ff Long<span>.Parse(Y.SubItems(Col).Text)<br/>
<span style="color:#0000ff Return<span> <span style="color:#0000ff If<span>(Ascending(Col), <span style="color:#0000ff If<span>(IX < IY, -1, <span style="color:#0000ff If<span>(IX = IY, 0, 1)), _<br/>
<span style="color:#0000ff If<span>(IY < IX, -1, <span style="color:#0000ff If<span>(IX = IY, 0, 1)))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff If<br/>
<span> <span style="color:#0000ff Return<span> <span style="color:#0000ff If<span>(Ascending(Col), <span style="color:#0000ff String<span>.Compare(X.SubItems(Col).Text, Y.SubItems(Col).Text), _<br/>
<span style="color:#0000ff String<span>.Compare(Y.SubItems(Col).Text, X.SubItems(Col).Text))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Function<br/>
<span> <span style="color:#0000ff Friend<span> TotalItems <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Friend<span> StartLine <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Friend<span> DisplayedLines <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Sub<span> LoadLV(<span style="color:#0000ff ByVal<span> Line <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span>)<br/>
<span style="color:#0000ff Me<span>.Items.Clear()<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = Line <span style="color:#0000ff To<span> Line + DisplayedLines - 1<br/>
<span style="color:#0000ff Select<span> <span style="color:#0000ff Case<span> I<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(0)(I))<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count + LVIs(1).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(1)(I - LVIs(0).Count))<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count + LVIs(1).Count + LVIs(2).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(2)(I - LVIs(0).Count - LVIs(1).Count))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Select<br/>
<span> <span style="color:#0000ff Next<br/>
<span> StartLine = Line<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyBackGroundWorker<br/>
<span style="color:#0000ff Inherits<span> BackgroundWorker<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Dim<span> DirExclude() <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = {<span style="color:#a31515 "$RECYCLE"<span>}<br/>
<span style="color:#0000ff Dim<span> LVIs(2) <span style="color:#0000ff As<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
<span style="color:#0000ff Me<span>.WorkerReportsProgress = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff Me<span>.WorkerSupportsCancellation = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Protected<span> <span style="color:#0000ff Overrides<span> <span style="color:#0000ff Sub<span> OnDoWork(<span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> DoWorkEventArgs)<br/>
LVIs = <span style="color:#0000ff DirectCast<span>(e.Argument, List(<span style="color:#0000ff Of<span> ListViewItem)())<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> 2<br/>
LVIs(I) = <span style="color:#0000ff New<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Next<br/>
<span> GetDirectoryFiles(<span style="color:#0000ff Me<span>.DI.Name)<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.CancellationPending <span style="color:#0000ff Then<span> e.Cancel = <span style="color:#0000ff True<span> : <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff MyBase<span>.OnDoWork(e)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> GetDirectoryFiles(<span style="color:#0000ff ByVal<span> DirPath <span style="color:#0000ff As<span> <span style="color:#0000ff String<span>)<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.CancellationPending <span style="color:#0000ff Then<span> <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> D <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> DirExclude<br/>
<span style="color:#0000ff If<span> DirPath.ToUpper.Contains(D) <span style="color:#0000ff Then<span> <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> F <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> Directory.GetFiles(DirPath)<br/>
<span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Dim<span> FileSize <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = FileLen(F).ToString<br/>
<span style="color:#0000ff Dim<span> FileName <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = Path.GetFileNameWithoutExtension(F)<br/>
<span style="color:#0000ff Dim<span> FileExtension <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = Path.GetExtension(F)<br/>
LVIs(0).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {FileName, FileExtension, FileSize, DirPath}))<br/>
<span style="color:#0000ff Catch<span> Ex <span style="color:#0000ff As<span> Exception<br/>
LVIs(1).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {Ex.ToString, <span style="color:#a31515 "File"<span>, <span style="color:#a31515 "Error"<span>, F}))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Next<span> F<br/>
<span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> D <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> Directory.GetDirectories(DirPath)<br/>
<span style="color:#0000ff Try<br/>
<span> GetDirectoryFiles(D)<br/>
<span style="color:#0000ff Catch<span> Ex <span style="color:#0000ff As<span> Exception<br/>
LVIs(2).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {Ex.ToString, <span style="color:#a31515 "Dir"<span>, <span style="color:#a31515 "Error"<span>, D}))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Next<span> D<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<span><br/>
View the full article
<span style="font-family:Courier new <span style="color:#0000ff Imports<span> System.IO<br/>
<span style="color:#0000ff Imports<span> System.ComponentModel<br/>
<span style="color:#0000ff Imports<span> System.Globalization<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Class<span> Form1<br/>
<span style="color:#0000ff Dim<span> Tabs <span style="color:#0000ff As<span> <span style="color:#0000ff New<span> MyTabControl<br/>
<span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> Form1_FormClosing(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> FormClosingEventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff Me<span>.FormClosing<br/>
<span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> TP <span style="color:#0000ff As<span> MyTabPage <span style="color:#0000ff In<span> <span style="color:#0000ff Me<span>.Tabs.TabPages<br/>
<span style="color:#0000ff If<span> TP.LV.BGW.IsBusy <span style="color:#0000ff Then<span> TP.LV.BGW.CancelAsync()<br/>
<span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> Form1_Load(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff MyBase<span>.Load<br/>
<span style="color:#0000ff Me<span>.Size = <span style="color:#0000ff New<span> Size(800, 600)<br/>
<span style="color:#0000ff Me<span>.Tabs.TabPages.Clear()<br/>
<span style="color:#0000ff Me<span>.Tabs.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff Me<span>.Tabs.Dock = DockStyle.Fill<br/>
<span style="color:#0000ff Dim<span> Drives() <span style="color:#0000ff As<span> DriveInfo = DriveInfo.GetDrives<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> Drives.Count - 1<br/>
<span style="color:#0000ff If<span> Drives(I).IsReady <span style="color:#0000ff Then<br/>
<span> Tabs.TabPages.Add(<span style="color:#0000ff New<span> MyTabPage(Drives(I)))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff If<br/>
<span> <span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyTabControl<br/>
<span style="color:#0000ff Inherits<span> TabControl<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyTabPage<br/>
<span style="color:#0000ff Inherits<span> TabPage<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Dim<span> VScrl <span style="color:#0000ff As<span> <span style="color:#0000ff New<span> VScrollBar<br/>
<span style="color:#0000ff Dim<span> Lbl <span style="color:#0000ff As<span> TabPageLabel<br/>
<span style="color:#0000ff Friend<span> LV <span style="color:#0000ff As<span> MyListView<br/>
<span style="color:#0000ff Dim<span> StartTime <span style="color:#0000ff As<span> DateTime<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
StartTime = Now<br/>
<span style="color:#0000ff Me<span>.Text = DI.Name + <span style="color:#a31515 " Loading"<br/>
<span> <span style="color:#0000ff Me<span>.Lbl = <span style="color:#0000ff New<span> TabPageLabel(DI)<br/>
<span style="color:#0000ff Me<span>.Lbl.Dock = DockStyle.Top<br/>
<span style="color:#0000ff Me<span>.Lbl.Parent = <span style="color:#0000ff Me<br/>
<span> LV = <span style="color:#0000ff New<span> MyListView(<span style="color:#0000ff Me<span>.DI)<br/>
<span style="color:#0000ff Me<span>.LV.Top = <span style="color:#0000ff Me<span>.Lbl.Bottom<br/>
<span style="color:#0000ff Me<span>.LV.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff Me<span>.VScrl.Parent = <span style="color:#0000ff Me<br/>
<span> <span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.LV.BGW.RunWorkerCompleted, <span style="color:#0000ff AddressOf<span> LVBGW_Complete<br/>
<span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.VScrl.ValueChanged, <span style="color:#0000ff AddressOf<span> VScrl_Changed<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> VScrl_Changed(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs)<br/>
<span style="color:#0000ff Me<span>.LV.LoadLV(VScrl.Value)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> LVBGW_Complete(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> RunWorkerCompletedEventArgs)<br/>
<span style="color:#0000ff Me<span>.LV.TotalItems = 0<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> 2<br/>
<span style="color:#0000ff Me<span>.LV.TotalItems += <span style="color:#0000ff Me<span>.LV.LVIs(I).Count<br/>
<span style="color:#0000ff Next<br/>
<span> VScrl.Maximum = <span style="color:#0000ff Me<span>.LV.TotalItems<br/>
<span style="color:#0000ff Me<span>.Lbl.Text += <span style="color:#a31515 " Files = "<span> + <span style="color:#0000ff Me<span>.LV.TotalItems.ToString + <span style="color:#a31515 " Time to load = "<span> + Fix(Now.Subtract(StartTime).TotalSeconds).ToString<br/>
<span style="color:#0000ff Me<span>.LV.LoadLV(<span style="color:#0000ff Me<span>.VScrl.Value)<br/>
<span style="color:#0000ff Me<span>.Text = DI.Name<br/>
<span style="color:#0000ff DirectCast<span>(sender, MyBackGroundWorker).Dispose()<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> MyTabPage_Resize(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> EventArgs) <span style="color:#0000ff Handles<span> <span style="color:#0000ff Me<span>.Resize<br/>
<span style="color:#0000ff Me<span>.LV.Width = <span style="color:#0000ff Me<span>.ClientRectangle.Width - <span style="color:#0000ff Me<span>.VScrl.Width<br/>
<span style="color:#0000ff Dim<span> BaseWidth <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = <span style="color:#0000ff Me<span>.LV.Columns(1).Width + <span style="color:#0000ff Me<span>.LV.Columns(2).Width + 500<br/>
<span style="color:#0000ff Me<span>.LV.Columns(0).Width = 198 + (<span style="color:#0000ff Me<span>.LV.Width - BaseWidth) 2<br/>
<span style="color:#0000ff Me<span>.LV.Columns(3).Width = 298 + (<span style="color:#0000ff Me<span>.LV.Width - BaseWidth) 2<br/>
<span style="color:#0000ff Me<span>.VScrl.Left = <span style="color:#0000ff Me<span>.LV.Right<br/>
<span style="color:#0000ff Me<span>.LV.Top = <span style="color:#0000ff Me<span>.Lbl.Bottom<br/>
<span style="color:#0000ff Me<span>.LV.Height = <span style="color:#0000ff Me<span>.ClientRectangle.Height - <span style="color:#0000ff Me<span>.LV.Top<br/>
<span style="color:#0000ff Me<span>.VScrl.Top = <span style="color:#0000ff Me<span>.LV.Top + 18<br/>
<span style="color:#0000ff Me<span>.VScrl.Height = <span style="color:#0000ff Me<span>.LV.Height - 18<br/>
<span style="color:#0000ff Me<span>.LV.DisplayedLines = ((<span style="color:#0000ff Me<span>.Height - 18) (<span style="color:#0000ff Me<span>.FontHeight + 4)) - 2<br/>
<span style="color:#0000ff Me<span>.VScrl.LargeChange = <span style="color:#0000ff Me<span>.LV.DisplayedLines<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.LV.TotalItems > 0 <span style="color:#0000ff Then<span> <span style="color:#0000ff Me<span>.LV.LoadLV(<span style="color:#0000ff Me<span>.VScrl.Value)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> TabPageLabel<br/>
<span style="color:#0000ff Inherits<span> Label<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.AutoSize = <span style="color:#0000ff False<br/>
<span> <span style="color:#0000ff Dim<span> TotalSize <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = <span style="color:#0000ff CDec<span>(DI.TotalSize / 1000000000).ToString(<span style="color:#a31515 "F"<span>)<br/>
<span style="color:#0000ff Dim<span> TotalFreeSpace <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = <span style="color:#0000ff CDec<span>(DI.TotalFreeSpace / 1000000000).ToString(<span style="color:#a31515 "F"<span>)<br/>
<span style="color:#0000ff Me<span>.TextAlign = ContentAlignment.MiddleLeft<br/>
<span style="color:#0000ff Me<span>.Text = <span style="color:#a31515 "Label = "<span> + DI.VolumeLabel + _<br/>
<span style="color:#a31515 " Capacity = "<span> + TotalSize + _<br/>
<span style="color:#a31515 " Free Space = "<span> + TotalFreeSpace + _<br/>
<span style="color:#a31515 " Type = "<span> + DI.DriveType.ToString + _<br/>
<span style="color:#a31515 " Format = "<span> + DI.DriveFormat<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyListView<br/>
<span style="color:#0000ff Inherits<span> ListView<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Friend<span> BGW <span style="color:#0000ff As<span> MyBackGroundWorker<br/>
<span style="color:#0000ff Friend<span> LVIs(2) <span style="color:#0000ff As<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
<span style="color:#0000ff Me<span>.Scrollable = <span style="color:#0000ff False<br/>
<span> BGW = <span style="color:#0000ff New<span> MyBackGroundWorker(<span style="color:#0000ff Me<span>.DI)<br/>
BGW.RunWorkerAsync(LVIs)<br/>
<span style="color:#0000ff Me<span>.View = View.Details<br/>
<span style="color:#0000ff Me<span>.GridLines = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "File"<span>, 200)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Ext"<span>, 70)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Size"<span>, 70)<br/>
<span style="color:#0000ff Me<span>.Columns.Add(<span style="color:#a31515 "Directory"<span>, 300)<br/>
<span style="color:#0000ff AddHandler<span> <span style="color:#0000ff Me<span>.ColumnClick, <span style="color:#0000ff AddressOf<span> Me_ColumnClick<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Sub<span> Me_ColumnClick(<span style="color:#0000ff ByVal<span> sender <span style="color:#0000ff As<span> <span style="color:#0000ff Object<span>, <span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> ColumnClickEventArgs)<br/>
Col = e.Column<br/>
Ascending(Col) = <span style="color:#0000ff Not<span> Ascending(Col)<br/>
LVIs(0).Sort(<span style="color:#0000ff AddressOf<span> CompareByColumn)<br/>
<span style="color:#0000ff Me<span>.LoadLV(StartLine)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Dim<span> Col <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Dim<span> Ascending(3) <span style="color:#0000ff As<span> <span style="color:#0000ff Boolean<br/>
<span> <span style="color:#0000ff Function<span> CompareByColumn(<span style="color:#0000ff ByVal<span> X <span style="color:#0000ff As<span> ListViewItem, <span style="color:#0000ff ByVal<span> Y <span style="color:#0000ff As<span> ListViewItem) <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff If<span> Col = 2 <span style="color:#0000ff Then<br/>
<span> <span style="color:#0000ff Dim<span> IX <span style="color:#0000ff As<span> <span style="color:#0000ff Long<span> = <span style="color:#0000ff Long<span>.Parse(X.SubItems(Col).Text)<br/>
<span style="color:#0000ff Dim<span> IY <span style="color:#0000ff As<span> <span style="color:#0000ff Long<span> = <span style="color:#0000ff Long<span>.Parse(Y.SubItems(Col).Text)<br/>
<span style="color:#0000ff Return<span> <span style="color:#0000ff If<span>(Ascending(Col), <span style="color:#0000ff If<span>(IX < IY, -1, <span style="color:#0000ff If<span>(IX = IY, 0, 1)), _<br/>
<span style="color:#0000ff If<span>(IY < IX, -1, <span style="color:#0000ff If<span>(IX = IY, 0, 1)))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff If<br/>
<span> <span style="color:#0000ff Return<span> <span style="color:#0000ff If<span>(Ascending(Col), <span style="color:#0000ff String<span>.Compare(X.SubItems(Col).Text, Y.SubItems(Col).Text), _<br/>
<span style="color:#0000ff String<span>.Compare(Y.SubItems(Col).Text, X.SubItems(Col).Text))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Function<br/>
<span> <span style="color:#0000ff Friend<span> TotalItems <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Friend<span> StartLine <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Friend<span> DisplayedLines <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<br/>
<span> <span style="color:#0000ff Sub<span> LoadLV(<span style="color:#0000ff ByVal<span> Line <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span>)<br/>
<span style="color:#0000ff Me<span>.Items.Clear()<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = Line <span style="color:#0000ff To<span> Line + DisplayedLines - 1<br/>
<span style="color:#0000ff Select<span> <span style="color:#0000ff Case<span> I<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(0)(I))<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count + LVIs(1).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(1)(I - LVIs(0).Count))<br/>
<span style="color:#0000ff Case<span> <span style="color:#0000ff Is<span> < LVIs(0).Count + LVIs(1).Count + LVIs(2).Count<br/>
<span style="color:#0000ff Me<span>.Items.Add(LVIs(2)(I - LVIs(0).Count - LVIs(1).Count))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Select<br/>
<span> <span style="color:#0000ff Next<br/>
<span> StartLine = Line<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<br/>
Public<span> <span style="color:#0000ff Class<span> MyBackGroundWorker<br/>
<span style="color:#0000ff Inherits<span> BackgroundWorker<br/>
<span style="color:#0000ff Dim<span> DI <span style="color:#0000ff As<span> DriveInfo<br/>
<span style="color:#0000ff Dim<span> DirExclude() <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = {<span style="color:#a31515 "$RECYCLE"<span>}<br/>
<span style="color:#0000ff Dim<span> LVIs(2) <span style="color:#0000ff As<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Public<span> <span style="color:#0000ff Sub<span> <span style="color:#0000ff New<span>(<span style="color:#0000ff ByVal<span> DI <span style="color:#0000ff As<span> DriveInfo)<br/>
<span style="color:#0000ff Me<span>.DI = DI<br/>
<span style="color:#0000ff Me<span>.WorkerReportsProgress = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff Me<span>.WorkerSupportsCancellation = <span style="color:#0000ff True<br/>
<span> <span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Protected<span> <span style="color:#0000ff Overrides<span> <span style="color:#0000ff Sub<span> OnDoWork(<span style="color:#0000ff ByVal<span> e <span style="color:#0000ff As<span> DoWorkEventArgs)<br/>
LVIs = <span style="color:#0000ff DirectCast<span>(e.Argument, List(<span style="color:#0000ff Of<span> ListViewItem)())<br/>
<span style="color:#0000ff For<span> I <span style="color:#0000ff As<span> <span style="color:#0000ff Integer<span> = 0 <span style="color:#0000ff To<span> 2<br/>
LVIs(I) = <span style="color:#0000ff New<span> List(<span style="color:#0000ff Of<span> ListViewItem)<br/>
<span style="color:#0000ff Next<br/>
<span> GetDirectoryFiles(<span style="color:#0000ff Me<span>.DI.Name)<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.CancellationPending <span style="color:#0000ff Then<span> e.Cancel = <span style="color:#0000ff True<span> : <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff MyBase<span>.OnDoWork(e)<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
<span> <span style="color:#0000ff Private<span> <span style="color:#0000ff Sub<span> GetDirectoryFiles(<span style="color:#0000ff ByVal<span> DirPath <span style="color:#0000ff As<span> <span style="color:#0000ff String<span>)<br/>
<span style="color:#0000ff If<span> <span style="color:#0000ff Me<span>.CancellationPending <span style="color:#0000ff Then<span> <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> D <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> DirExclude<br/>
<span style="color:#0000ff If<span> DirPath.ToUpper.Contains(D) <span style="color:#0000ff Then<span> <span style="color:#0000ff Return<br/>
<span> <span style="color:#0000ff Next<br/>
<span> <span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> F <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> Directory.GetFiles(DirPath)<br/>
<span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Dim<span> FileSize <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = FileLen(F).ToString<br/>
<span style="color:#0000ff Dim<span> FileName <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = Path.GetFileNameWithoutExtension(F)<br/>
<span style="color:#0000ff Dim<span> FileExtension <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> = Path.GetExtension(F)<br/>
LVIs(0).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {FileName, FileExtension, FileSize, DirPath}))<br/>
<span style="color:#0000ff Catch<span> Ex <span style="color:#0000ff As<span> Exception<br/>
LVIs(1).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {Ex.ToString, <span style="color:#a31515 "File"<span>, <span style="color:#a31515 "Error"<span>, F}))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Next<span> F<br/>
<span style="color:#0000ff For<span> <span style="color:#0000ff Each<span> D <span style="color:#0000ff As<span> <span style="color:#0000ff String<span> <span style="color:#0000ff In<span> Directory.GetDirectories(DirPath)<br/>
<span style="color:#0000ff Try<br/>
<span> GetDirectoryFiles(D)<br/>
<span style="color:#0000ff Catch<span> Ex <span style="color:#0000ff As<span> Exception<br/>
LVIs(2).Add(<span style="color:#0000ff New<span> ListViewItem(<span style="color:#0000ff New<span> <span style="color:#0000ff String<span>() {Ex.ToString, <span style="color:#a31515 "Dir"<span>, <span style="color:#a31515 "Error"<span>, D}))<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Try<br/>
<span> <span style="color:#0000ff Next<span> D<br/>
<span style="color:#0000ff End<span> <span style="color:#0000ff Sub<br/>
End<span> <span style="color:#0000ff Class<span><br/>
View the full article