Hvis det du ønsker er at liste samtlige filer og mapper, se flg. :
Private Type TFileInfo FileName As String FolderName As String FileSize As Long End Type
Private Sub ListFiles(ByVal Folder As String, ByRef FileInfo() As TFileInfo, ByRef FileIndex As Long) Dim DirList() As String Dim iList As Long Dim cList As Long cList = 256 ReDim DirList(cList) As String Dim FileName As String ' Get List of SubFolders and Informations about Files If Right(Folder, 1) <> "\" Then Folder = Folder & "\" FileName = Dir(Folder & "*.*", vbDirectory) Do Until FileName = "" If (FileName <> ".") And (FileName <> "..") Then If (GetAttr(Folder & FileName) And vbDirectory) <> 0 Then ' Add Folder to DirList DirList(iList) = FileName iList = iList + 1 If iList = cList Then cList = cList + 128 ReDim Preserve DirList(cList) As String End If Else ' Add Informations to FileInfo FileInfo(FileIndex).FolderName = Folder FileInfo(FileIndex).FileName = FileName FileInfo(FileIndex).FileSize = FileLen(Folder & FileName) FileIndex = FileIndex + 1 If FileIndex = UBound(FileInfo) Then ReDim Preserve FileInfo(FileIndex + 128) As TFileInfo End If End If End If ' Get Next FileName FileName = Dir Loop ' ListFiles within SubFolders For iList = iList - 1 To 0 Step -1 Call ListFiles(Folder & DirList(iList), FileInfo(), FileIndex) Next End Sub
Private Sub Form_Load() Dim FileInfo() As TFileInfo ReDim FileInfo(256) As TFileInfo Dim FileIndex As Long Call ListFiles("C:\", FileInfo(), FileIndex) End Sub
JEg har lavet den der kigger om der er nogle filer fra databasen der ikke er på harddisken, men ikke den anden vej... Og jeg kan ikke lige gennemskue det du har givet mig der.
Det gør den ikke nu... Men der er jo ikke noget resultat iform af en txt fil, eller lign... Kan du ikke prøve at forenkle det lidt... Jeg giver gene flere point
Rutinen returnerer et Array af typen TFileInfo TFileInfo består af 3 elementer : FileName As String FolderName As String FileSize As Long Dette er meget mere brugbart end at returnere resultatet i en tekstfil, som du så bagefter skal gennemgå.
Hvis du gerne vil have en tekstfil, kan du erstatte ' Add Informations to FileInfo FileInfo(FileIndex).FolderName = Folder FileInfo(FileIndex).FileName = FileName FileInfo(FileIndex).FileSize = FileLen(Folder & FileName) Med følgende ' Add Informations to FileInfo Print #1, Folder & "," & FileName & "," & FileLen(Folder & FileName) Hvor du tidligere har åbnet en fil som #1
Husk at åbne filen : F.eks. Open "C:\File.txt" For Output As #1 og efter du er færdig Close #1
Synes godt om
Ny brugerNybegynder
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.