Avatar billede loukas Mester
13. maj 2003 - 00:19 Der er 4 kommentarer og
1 løsning

Få vist filstørrelse i FileListBox ?

Kan det lade sig gøre at få vist filstørrelsen i en FileListBox ??
Ligesom i windows når man 'højreklikker - vis detaljer' i en mappe.....
Hvis ikke er der så en anden kontrol jeg kan bruge ??
PS: jer er nybegynder i VB ;-)
Avatar billede sjh Nybegynder
13. maj 2003 - 02:07 #1
viser file størrelsen i byte


Private Sub File1_Click()
Dim strPath As String
Dim lngByte As Long
Dim lngKB As Long

  strPath = File1.Path & "\" & File1.filename
  lngByte = FileLen(strPath)

  Me.Caption = lngByte & " Byte"
End Sub
Avatar billede sjh Nybegynder
13. maj 2003 - 02:08 #2
"Dim lngKB As Long" skal ikke bruges :-)
Avatar billede loukas Mester
13. maj 2003 - 07:30 #3
Joo, idéen er god nok, men jeg vil gerne have det ned i selve FileListBoxen at stå.
Jeg har selv gjordt det samme bare med en MsgBox i stedet for caption ;-)
Avatar billede martin_moth Mester
13. maj 2003 - 08:06 #4
I stedet for FileListBOx kan du bruge ListView - den har jeg selv brugt til at lave min egen "stifinder".

Du finder den sikkert ikke på din normale toolbox, så du må tilføje den (Ctrl+T), den ligger hos mig i Microsoft windows common controls 5.0 (SP2)

Når du har gjort det, så smid en FileList (File1) på din form sammen med dit Listview (ListView1) på din form, og indsæt koden her, så har du det du ønsker:

Private Sub Form_Load()
 
  Dim lngByte As Long
  Dim itmX
  Dim i

  'Indsætter kolonner i Listview1
  With ListView1
    .View = 3
    .ColumnHeaders.Add , , "Navn", 2000
    .ColumnHeaders.Add , , "Størrelse", 1100, lvwColumnRight
  End With
 
  'Nulstiller Listview1
  ListView1.ListItems.Clear
 
  'Indlæser filer i Listview1
  For i = 0 To File1.ListCount - 1
   
    'Skriver filnavn i listview1
    Set itmX = ListView1.ListItems.Add(, , File1.List(i))
   
    'Skriver filstørrelse
    lngByte = FileLen(File1.Path & "\" & File1.List(i))
    If (lngByte / 1024) < 1 Then
      itmX.SubItems(1) = "< 1 KB"
    Else
      itmX.SubItems(1) = Round(lngByte / 1024) & " KB"
    End If
  Next i
 
  Set itmX = Nothing
End Sub

NB: Ovenstående melder naturligvis fejl hvis File1 står i roden af et drev pga. den dobbelte \  ...det har du sikkert selv styr på at rette ;o)
Avatar billede loukas Mester
14. maj 2003 - 00:58 #5
kanon, det var jo lige sådan noget jeg ku' bruge.
Jeg siger mange tak.......
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester