Avatar billede srhansen Nybegynder
09. februar 2002 - 22:59 Der er 3 kommentarer og
2 løsninger

filnavne til array

Hej
Jeg søger lidt hjælp. Jeg har lavet et array:

Global Items(1000) As String

Nu vil jeg gerne have filnavnene på alle filer i et bibliotek gemt i dette array. Svarende til de filnavne der fremkommer når man skriver dir.
Nogen forslag ?
Avatar billede devman Nybegynder
09. februar 2002 - 23:11 #1
Jeg ville lave en filelistbox indstille path på den.
Så ville jeg bruge list() fra denne som mit array.
Du kan jo skjule filelistboxen så ingen kan se den.
Avatar billede sjh Nybegynder
10. februar 2002 - 00:08 #2
'------------------------------------------ Module1 ------------------------------------------
Option Explicit

Global FileItems() As String
Global DirsItems() As String

Public Function LoadLocal(Path As String)
On Error Resume Next
Dim NextLocal As String
Dim FullSpec As String
Dim idir As Long
Dim ifil As Long

ChDrive Path
ChDir Path

If Len(CurDir()) = 3 Then
  FullSpec = CurDir() & "*.*"
    Else
  FullSpec = CurDir() & "\*.*"
End If

NextLocal = Dir(FullSpec, vbDirectory + vbNormal)

  Do While NextLocal <> ""
    If Len(CurDir()) = 3 Then
      FullSpec = CurDir() & StrConv(NextLocal, vbProperCase)
        Else
      FullSpec = CurDir() & "\" & NextLocal
    End If

    If (GetAttr(FullSpec) And vbDirectory) = vbDirectory Then
      idir = idir + 1
        ReDim Preserve DirsItems(idir - 1) As String
          DirsItems(idir - 1) = StrConv(NextLocal, vbProperCase) & " - [DIR]" 'Dir
            Else
          ifil = ifil + 1
        ReDim Preserve FileItems(ifil - 1) As String
      FileItems(ifil - 1) = StrConv(NextLocal, vbProperCase) & " - " & FileLen(FullSpec) & " byte" 'File
    End If

    NextLocal = Dir
  Loop
End Function
'------------------------------------------ Module1 ------------------------------------------


'------------------------------------------ Form1 ------------------------------------------
Option Explicit

Private Sub Form_Load()
Dim i As Long
LoadLocal "C:\"

  For i = 0 To UBound(DirsItems())
    List1.AddItem DirsItems(i) 'Dirs
  Next i

  For i = 0 To UBound(FileItems())
    List1.AddItem FileItems(i) 'Files
  Next i

End Sub
'------------------------------------------ Form1 ------------------------------------------
Avatar billede devman Nybegynder
10. februar 2002 - 00:22 #3
Hvad med ...
Lav en form og lav en FileListBox på den
I Form_Load() skriver du.
File1.Path = "c:\"
Så har du det sammen som sjh møjsommeligt har skrevet ...
Avatar billede srhansen Nybegynder
10. februar 2002 - 00:40 #4
Tak begge to, begge løsninger virker.
Jeg havde nu tænkt mig en løsning, der ikke nødvendigvis benytter en form, derfor hælder jeg mest til <sjh's> løsning. I løste begge to mit problem fornemt. Derfor har jeg afsat lidt flere points, håber fordeling er i orden :)
Avatar billede sjh Nybegynder
10. februar 2002 - 02:27 #5
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