Public Sub ShowFiles(ByVal strDirectory As String) livPc.BackColor = System.Drawing.SystemColors.ControlLightLight ' Save the directory name as a field. Me.strDirectory = strDirectory livPc.Items.Clear() Dim diDirectories As New DirectoryInfo(strDirectory) Dim afiFiles() As FileInfo Dim fitemp As String Dim fisize As String Try ' Call the convenient GetFiles method to get an array of all files ' in the directory. afiFiles = diDirectories.GetFiles() Catch Return End Try Dim fi As FileInfo For Each fi In afiFiles ' Create ListViewItem. Dim lvi As New ListViewItem(fi.Name) If (fi.Attributes And FileAttributes.System) = 0 And (fi.Attributes And FileAttributes.Hidden) = 0 Then ' Assign ImageIndex based on filename extension. Select Case Path.GetExtension(fi.Name).ToUpper() Case ".EXE" lvi.ImageIndex = 16 Case ".XLS" lvi.ImageIndex = 17 Case ".DOC" lvi.ImageIndex = 21 Case ".PDF" lvi.ImageIndex = 20 Case ".TXT" lvi.ImageIndex = 14 Case Else lvi.ImageIndex = 22 End Select ' Add file length and last modified time sub-items. 'lvi.SubItems.Add(fi.Length.ToString("N0")) 'lvi.SubItems.Add(Format(Math.Ceiling(fi.Length / 1024), "##,##0") & " KB")
'Get file size accroding with specify format fitemp = CStr(CType((fi.Length), Single) / 1024) 'Conver to single type from string type
If fi.Length / 1024 = fi.Length \ 1024 Then '如果文件大小为不带小数位.则在后面加".00KB" fisize = fitemp & ".00 KB" Else If fitemp.Substring(fitemp.LastIndexOf(".") + 1).Length < 2 Then '如果文件大小为一位小数位.则在后面加".0KB" fisize = Mid(fitemp, 1, fitemp.LastIndexOf(".") + 1) & fitemp.Substring(fitemp.LastIndexOf(".") + 1, 1) & "0 KB" 'Get file size with format as (23.56KB) Else '如果文件大小为小数位大于或等于两位.则在后面加"KB" fisize = Mid(fitemp, 1, fitemp.LastIndexOf(".") + 1) & fitemp.Substring(fitemp.LastIndexOf(".") + 1, 2) & " KB" 'Get file size with format as (23.56KB) End If End If '-------------------------------------------- lvi.SubItems.Add(fisize) lvi.SubItems.Add(Path.GetExtension(fi.Name).ToString) lvi.SubItems.Add(fi.LastWriteTime.ToString()) 'Add completed ListViewItem to FileListView. livPc.Items.Add(lvi) End If Next End Sub