Avatar billede blueice Nybegynder
18. maj 2005 - 11:02 Der er 4 kommentarer og
2 løsninger

Vælge første mappe i en mappe..

Okay jeg har en mappe eks
C:\test\
En masse andre mapper, som jeg ikke kender navne på, jeg ønsker at få fat i den færste mappe og få sat den ind i denne streng:

mappe="C:\test\[FØRSTE MAPPE I MAPPEN "C:\TEST"]

Eks:
Indhold af mappen C:\test
A\
B\
C\
abe.doc
Hund.doc

I dette tilfælde vil jeg altså have fat i mappen C:\test\A..

Håber du kan hjælpe
Avatar billede martin_moth Mester
18. maj 2005 - 11:08 #1
Med den "første mappe" - mener du da at det er den der er først hvis de er sorteret efter deres navn?

En nem måde er at smide en dirlistbox med navn "Dir1" på din form, og bruge denne kode:

Dir1.Path = "c:\test"
MsgBox "Første mappe er : " & Dir1.List(0)
MsgBox "Mappe nr. 3 er : " & Dir1.List(2)
... osv
Avatar billede martin_moth Mester
18. maj 2005 - 11:10 #2
Altså for at svare helt specifikt:

Smid en drivelistbox på din form. Brug koden:

  Dir1.Path = "c:\test"
  mappe = Dir1.List(0)
Avatar billede blueice Nybegynder
18. maj 2005 - 11:31 #3
kan man få dirlisten til at vise skjulte mapper????
Avatar billede martin_moth Mester
18. maj 2005 - 15:26 #4
Det tror jeg ikke.

Men det kan du med FSO (File System Object)
Avatar billede martin_moth Mester
18. maj 2005 - 15:49 #5
Med denne kode får du vist alle foldere i c:\temp, også de skjulte.

Først gå til Project > References og vælg Microsoft Scripting Runtime

Smid en command1 på din form, copy-paste koden og kør programmet


Option Explicit

Dim FolderArray() As String

Private Sub Command1_Click()
  Dim strSearchFolder As String
  Dim strFirstFolder As String
 
  Dim i As Long
  Dim fso As Scripting.FileSystemObject

  Set fso = New Scripting.FileSystemObject
  strSearchFolder = "C:\temp"  '<--Skift evt. mappenavnet
  FindfirstFolder fso.GetFolder(strSearchFolder)
  For i = LBound(FolderArray) To UBound(FolderArray)
    MsgBox " Folder nummer " & i + 1 & " hedder " & FolderArray(i)
  Next i
  MsgBox "Ikke flere foldere"
End Sub

Private Sub FindfirstFolder(folder As Scripting.folder)
  Dim tmpFolder As Scripting.folder
  Dim j As Long
 
  If folder.SubFolders.Count > 0 Then
    For Each tmpFolder In folder.SubFolders
      ReDim Preserve FolderArray(j)
      FolderArray(j) = tmpFolder.Name
      j = j + 1
    Next
  End If
End Sub
Avatar billede blueice Nybegynder
18. maj 2005 - 17:19 #6
TAkker
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