VBA GetFolder & GetFile (Hent fil- og mappeegenskaper)

Denne opplæringen vil demonstrere hvordan du bruker GetFolder- og GetFile -metodene i FileSystemObject.

Få mappe- og filegenskaper med VBA FileSystemObject

Metoden GetFolder returnerer et mappeobjekt som tilsvarer mappen i en spesifisert bane og gir deg tilgang til egenskapene. GetFile -metoden gjør det samme med filen som er angitt.

Sett VBA -referanse

Først, når du bruker FileSystemObjects, må du kanskje angi en referanse til VB-skriptets kjøretidsbibliotek: åpne Visual Basic Editor (ALT+F11), velg Verktøy> Referanser fra rullegardinmenyen og merk av i avmerkingsboksen for 'Microsoft Scripting Runtime'.

FileSystemObject

For det andre må du opprette FileSystemObject:

12 Dim FSO som nytt filsystemobjektSett FSO = CreateObject ("Scripting.FileSystemObject")

Nå har du tilgang til GetFolder og de andre FileSystemObject -metodene.

Bruk av GetFolder -metode

Etter å ha spesifisert mappen du vil ha tilgang til

1 Sett fld = FSO.GetFolder ("C: \ Src \")

du kan kopiere den:

1 fld.Copy "C: \ NewFolder \"

flytt den:

1 fld.Move "C: \ NewFolder \"

slett det:

1 fld.Slett

eller opprett en ny tekstfil i den:

1 fld.CreateTextFile “NewTextFile.txt”

Ved å bruke denne metoden får du tilgang til mappens egenskaper, for eksempel attributtene (fld.Attributes), datoen og klokkeslettet da den ble opprettet (fld.DateCreated), sist åpnet (fld.DateLastAccess), sist endret (fld.DateLastModified ), stasjonsbokstaven (fld.Drive), navnet og kortnavnet (fld.Name, fld.ShortName), banen og den korte banen (fld.Path, fld.ShortPath), dens størrelse (fld.Size), dens type (fld.Type), dens overordnede mappe (fld.ParentFolder), sjekk om det er en rotmappe (fld.IsRootFolder) eller du kan gå gjennom, telle osv. dens filer (fld.Files) eller undermapper (fld. Undermapper).

Å sette alt sammen i en prosedyre vil se slik ut:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Dim FSO som nytt filsystemobjektSett FSO = CreateObject ("Scripting.FileSystemObject")Sett fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypeFor hver brette i fld. SubmapperDebug.Print fold.NameNeste brettFor hver fil i fld.FilesDebug.Print fil.NameNeste filSlutt Sub

Vær oppmerksom på at du må trykke Ctrl+G for å se resultatet av Debug.Print -kommandoen i VBA -vinduet umiddelbart.

GetParentFolderName -metode

Alternativt til ovennevnte måte kan du få tilgang til navnet på en mappe overordnet mappe ved å bruke denne koden:

1234 Dim FSO som nytt filsystemobjektSett FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

ParentFold vil i dette tilfellet være "C: \ ParentTest \".

Vær oppmerksom på at denne metoden ikke løser banen, og den kontrollerer heller ikke om den angitte banen finnes.

GetSpecialFolder -metode

Med GetSpecialFolder -metoden kan du ved å sende 0, 1 eller 2 som et argument få Windows -mappebanen (med filer installert av Windows -operativsystemet), systemmappebanen (med biblioteker, fonter og enhetsdrivere) og midlertidige henholdsvis mappebane (mappen som brukes til lagring av midlertidige filer).

1234567 Sub FSOGetSpecialFolder ()Dim FSO som nytt filsystemobjektSett FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘Resultatet kan være: C: \ Windows \ System32Slutt Sub

GetFile -metode

Du kan bruke GetFile -metoden på en lignende måte som GetFolder -metoden. Etter å ha spesifisert filen du vil ha tilgang til

1 Sett fil = FSO.GetFile ("C: \ Src \ Test.xlsx")

du kan kopiere den:

1 fil.Kopi "C: \ Dst \"

flytt den:

1 fil.Flytt "C: \ Dst \"

slett det:

1 fil.Slett

eller åpne det som et TextStream -objekt:

1 fil.OpenAsTextStream

Filens egenskaper, for eksempel attributter, dato og klokkeslett da den ble opprettet, sist åpnet eller sist endret, stasjonens bokstav, navn og korte navn, bane og korte bane, størrelse, type og overordnet mappe kan nås på samme måte som beskrevet i GetFolder -metoden.

wave wave wave wave wave