VBA GetFolder & GetFile (Bestands- en mapeigenschappen ophalen)

Deze zelfstudie laat zien hoe u de GetFolder- en GetFile-methoden van het FileSystemObject gebruikt.

Map- en bestandseigenschappen ophalen met VBA FileSystemObject

De methode GetFolder retourneert een Folder-object dat overeenkomt met de map in een opgegeven pad en geeft u toegang tot de eigenschappen ervan. De methode GetFile doet hetzelfde met het opgegeven bestand.

VBA-referentie instellen

Ten eerste, wanneer u FileSystemObjects gebruikt, moet u mogelijk een verwijzing naar de runtime-bibliotheek van het VB-script instellen: open de Visual Basic Editor (ALT+F11), selecteer Extra > Referenties in het vervolgkeuzemenu en vink het selectievakje van 'Microsoft Scripting Runtime'.

BestandssysteemObject

Ten tweede moet u het FileSystemObject maken:

12 Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") in

Nu heb je toegang tot GetFolder en de andere FileSystemObject-methoden.

Gebruik van de GetFolder-methode

Na het specificeren van de map die u wilt openen

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

je kunt het kopiëren:

1 fld.Kopieer "C:\Nieuwe map\"

verplaats het:

1 fld.Verplaats "C:\Nieuwe map\"

Verwijder het:

1 fld.Verwijderen

of maak er een nieuw tekstbestand in:

1 fld.CreateTextFile "NewTextFile.txt"

Door deze methode te gebruiken, krijgt u toegang tot de eigenschappen van de map, zoals de attributen (fld.Attributes), de datum en tijd waarop deze is gemaakt (fld.DateCreated), laatst geopend (fld.DateLastAccessed), laatst gewijzigd (fld.DateLastModified ), de stationsletter (fld.Drive), de naam en korte naam (fld.Name, fld.ShortName), het pad en het korte pad (fld.Path, fld.ShortPath), de grootte (fld.Size), de type (fld.Type), de bovenliggende map (fld.ParentFolder), controleer of het een hoofdmap is (fld.IsRootFolder) of u kunt doorlopen, tellen, enz. de bestanden (fld.Files) of submappen (fld. submappen).

Dit alles samenvoegen in een procedure ziet er als volgt uit:

123456789101112131415161718192021222324 Sub-FSOGetFolder()Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") inStel fld = FSO.GetFolder("C:\Src\") inDebug.Print fld.DateCreatedDebug.Print fld.DriveFoutopsporing.Fld.Naam afdrukkenDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathFoutopsporing.Fld.grootte afdrukkenDebug.Print fld.Files.CountFoutopsporing.Fld.Type afdrukkenVoor elke vouw in fld.SubmappenDebug.Print vouw.NaamVolgende vouwVoor elk bestand In fld.FilesFoutopsporing.Bestandsnaam afdrukkenVolgende bestandEinde sub

Houd er rekening mee dat u op Ctrl+G moet drukken om het resultaat van de opdracht Debug.Print in het onmiddellijke VBA-venster te zien.

GetParentFolderName-methode

Als alternatief voor de hierboven genoemde manier, kunt u de naam van de bovenliggende map van een map openen door deze code te gebruiken:

1234 Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") inParentFold= FSO.GetParentFolderName("C:\ParentTest\Test\")

ParentFold zal in dit geval “C:\ParentTest\” zijn.

Houd er rekening mee dat deze methode het pad niet zal oplossen en ook niet controleert op het bestaan ​​van het opgegeven pad.

GetSpecialFolder-methode

Met de GetSpecialFolder-methode, door 0, 1 of 2 als argument door te geven, kunt u uw Windows-mappad (met bestanden geïnstalleerd door het Windows-besturingssysteem), uw systeemmappad (met bibliotheken, lettertypen en apparaatstuurprogramma's) en tijdelijke mappad (de map die wordt gebruikt voor het opslaan van tijdelijke bestanden), respectievelijk.

1234567 Sub-FSOGetSpecialFolder()Dim FSO als nieuw bestandssysteemobjectStel FSO = CreateObject ("Scripting.FileSystemObject") inDebug.Print FSO.GetSpecialFolder(0) ‘Resultaat kan zijn: C:\Windows\System32Einde sub

GetFile-methode

U kunt de GetFile-methode op een vergelijkbare manier gebruiken als de GetFolder-methode. Na het specificeren van het bestand dat u wilt openen

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

je kunt het kopiëren:

1 fil.Kopieer "C:\Dst\"

verplaats het:

1 fil.Verplaats "C:\Dst\"

Verwijder het:

1 fil.Verwijderen

of open het als een TextStream-object:

1 fil.OpenAsTextStream

De eigenschappen van het bestand, zoals de attributen, de datum en tijd waarop het is gemaakt, voor het laatst geopend of voor het laatst gewijzigd, de stationsletter, naam en korte naam, pad en kort pad, grootte, type en de bovenliggende map kunnen op dezelfde manier worden geopend zoals beschreven bij de GetFolder-methode.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave