VBA GetFolder & GetFile (Hämta fil- och mappegenskaper)

Denna handledning kommer att visa hur du använder metoderna GetFolder och GetFile i FileSystemObject.

Skaffa mapp- och filegenskaper med VBA FileSystemObject

Metoden GetFolder returnerar ett mappobjekt som motsvarar mappen i en angiven sökväg och låter dig komma åt dess egenskaper. Metoden GetFile gör samma sak med den angivna filen.

Ställ in VBA -referens

Först, när du använder FileSystemObjects, kan du behöva ange en referens till VB-skriptets körtidsbibliotek: öppna Visual Basic Editor (ALT+F11), välj Verktyg> Referenser från rullgardinsmenyn och markera kryssrutan för 'Microsoft Scripting Runtime'.

FileSystemObject

För det andra måste du skapa FileSystemObject:

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

Nu har du tillgång till GetFolder och de andra FileSystemObject -metoderna.

Användning av GetFolder -metod

Efter att ha angett den mapp du vill komma åt

1 Ställ in fld = FSO.GetFolder ("C: \ Src \")

du kan kopiera det:

1 fld.Copy "C: \ NewFolder \"

flytta den:

1 fld.Move "C: \ NewFolder \"

radera det:

1 fld.Delete

eller skapa en ny textfil i den:

1 fld.CreateTextFile “NewTextFile.txt”

Genom att använda den här metoden får du tillgång till mappens egenskaper som dess attribut (fld.Attributes), datum och tid då den skapades (fld.DateCreated), senast åtkomlig (fld.DateLastAccess), senast ändrad (fld.DateLastModified ), dess enhets bokstav (fld.Drive), dess namn och kortnamn (fld.Name, fld.ShortName), dess sökväg och korta väg (fld.Path, fld.ShortPath), dess storlek (fld.Size), dess typ (fld.Type), dess överordnade mapp (fld.ParentFolder), kontrollera om det är en rotmapp (fld.IsRootFolder) eller så kan du bläddra igenom, räkna etc. dess filer (fld.Files) eller undermappar (fld. Undermappar).

Att sätta ihop allt i ett förfarande skulle se ut så här:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Dim FSO som nytt filsystemsystemAnge FSO = CreateObject ("Scripting.FileSystemObject")Ställ in 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.TypeFör varje vikning i fld.SubFoldersDebug.Print fold.NameNästa vikningFör varje fil i fld.FilesDebug.Print fil.NameNästa filAvsluta Sub

Observera att du ska trycka på Ctrl+G för att se resultatet av Debug.Print -kommandot i VBA: s omedelbara fönster.

GetParentFolderName -metod

Alternativt till ovanstående sätt kan du komma åt en mapps överordnade mapps namn med hjälp av denna kod:

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

ParentFold kommer i detta fall att vara "C: \ ParentTest \".

Observera att den här metoden inte kommer att lösa sökvägen och inte heller kontrollera att den angivna sökvägen finns.

GetSpecialFolder -metod

Med GetSpecialFolder -metoden kan du genom att skicka 0, 1 eller 2 som ett argument få din Windows -mappsökväg (med filer installerade av Windows -operativsystemet), din systemmappsväg (med bibliotek, teckensnitt och enhetsdrivrutiner) och tillfälliga mappsökväg (mappen som används för att lagra tillfälliga filer).

1234567 Sub FSOGetSpecialFolder ()Dim FSO som nytt filsystemsystemAnge FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘Resultatet kan vara: C: \ Windows \ System32Avsluta Sub

GetFile -metod

Du kan använda GetFile -metoden på ett mycket liknande sätt som GetFolder -metoden. Efter att ha angett filen du vill komma åt

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

du kan kopiera det:

1 fil.Copy "C: \ Dst \"

flytta den:

1 fil.Move "C: \ Dst \"

radera det:

1 fil.Delete

eller öppna det som ett TextStream -objekt:

1 fil.OpenAsTextStream

Filens egenskaper som dess attribut, datum och tid då den skapades, senast öppnades eller senast ändrades, dess enhets bokstav, namn och kortnamn, sökväg och kort sökväg, storlek, typ och dess överordnade mapp kan nås på samma sätt som beskrivs i GetFolder -metoden.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave