13. marts 2008 - 09:44Der er
4 kommentarer og 1 løsning
Spørgsmål til Scripting.FileSystemObject
Hej. Kan man med Scripting.FileSystemObject hente alle filer i en mappe der starter med noget bestemt. Som man f.eks kan med Ftp kommandoen "ls Test", som vil returnere alle filer der starter med "Test".
Ikke umiddelbart, men du kan kan jo lave din egen. Du skal bruge et Folder-objekt og dennes Files-collection. Så kan du checke hvert filnavn op mod et regulært udtryk og hvis det matcher, så returnere File-objektet.
Noget i stil med dette:
function getFiles(folderspec, filepattern) dim rx dim fso, fldr, f dim arrFiles, idx
arrFiles = Array()
set rx = new RegEx rx.IgnoreCase = true rx.Global = true rx.MultiLine = true rx.Pattern = filepattern
set fso = CreateObject("Scripting.FileSystemObject") set fldr = fso.GetFolder(folderspec) idx = 0 for each f in fldr.Files if rx.Test(f.Name) then redim preserve arrFiles(idx) set arrFiles(idx) = f idx = idx + 1 end if next set fldr = nothing set fso = nothing
getFiles = arrFiles end function
' Test funktionen dim files, f, txt txt = "Følgende filer matcher:" & vbCrLf files = getFiles("c:\", "test[.]*") for each f in files txt = txt & f.Name & vbCrLf next MsgBox txt
ja, den kender jeg godt, ja den kender jeg godt problemet er at det er et networkshare med over 100.000 filer, så det tager en evighed, ls metoden fra Ftp gør det på et split sekund, jeg bli´ver nok bare nød til at indse at det skal gøres med Ftp
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.