VBA GetFolder & GetFile (Získať vlastnosti súboru a priečinka)

Tento tutoriál ukáže, ako používať metódy GetFolder a GetFile systému FileSystemObject.

Získajte vlastnosti priečinka a súboru pomocou VBA FileSystemObject

Metóda GetFolder vráti objekt Folder zodpovedajúci priečinku na zadanej ceste a umožní vám prístup k jeho vlastnostiam. Metóda GetFile robí to isté so zadaným súborom.

Nastavte referenciu VBA

Najprv pri použití FileSystemObjects bude možno potrebné nastaviť odkaz na run-time knižnicu VB skriptov: otvorte editor jazyka Visual Basic (ALT+F11), v rozbaľovacej ponuke vyberte položku Nástroje> Referencie a začiarknite políčko „Microsoft Scripting Runtime“.

FileSystemObject

Za druhé, musíte vytvoriť FileSystemObject:

12 Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")

Teraz máte prístup k GetFolder a ďalším metódam FileSystemObject.

Použitie metódy GetFolder

Po zadaní priečinka, do ktorého chcete získať prístup

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

môžeš to skopírovať:

1 fld.Copy "C: \ NewFolder \"

Pohni sa:

1 fld.Presuňte "C: \ NewFolder \"

vymaž to:

1 fld.Delete

alebo v ňom vytvorte nový textový súbor:

1 fld.CreateTextFile „NewTextFile.txt“

Použitím tejto metódy získate prístup k vlastnostiam priečinka, ako sú jeho atribúty (fld.Attributes), dátum a čas vytvorenia (fld.DateCreated), posledný prístup (fld.DateLastAccessed), posledná úprava (fld.DateLastModified ), písmeno jeho disku (fld.Drive), jeho názov a krátky názov (fld.Name, fld.ShortName), jeho cesta a krátka cesta (fld.Path, fld.ShortPath), jeho veľkosť (fld.Size), jeho zadajte (fld.Type), jeho nadradený priečinok (fld.ParentFolder), skontrolujte, či ide o koreňový priečinok (fld.IsRootFolder), alebo môžete prechádzať, počítať atď. jeho súbory (fld.Files) alebo podpriečinky (fld. Podpriečinky).

Keď to celé spojíme do postupu, bude to vyzerať takto:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť 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. TypPre každý záhyb v podpriečinkochLadenie. Vytlačiť sklad. NázovĎalší skladZa každý súbor v priečinku fld.FilesDebug.Print fil.NameĎalší súborKoniec pod

Upozorňujeme, že stlačením klávesov Ctrl+G zobrazíte výsledok príkazu Debug.Print v bezprostrednom okne VBA.

Metóda GetParentFolderName

Alternatívne k vyššie uvedenému spôsobu môžete k názvu rodičovského priečinka priečinka pristupovať pomocou tohto kódu:

1234 Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

ParentFold bude v tomto prípade „C: \ ParentTest \“.

Upozorňujeme, že táto metóda nevyrieši cestu ani nekontroluje existenciu zadanej cesty.

Metóda GetSpecialFolder

Pomocou metódy GetSpecialFolder po zadaní argumentu 0, 1 alebo 2 ako argumentu môžete získať cestu k priečinku Windows (so súbormi nainštalovanými operačným systémom Windows), cestu k systémovému priečinku (s knižnicami, písmami a ovládačmi zariadení) a dočasné cesta k priečinku (priečinok, ktorý slúži na ukladanie dočasných súborov), resp.

1234567 Sub FSOGetSpecialFolder ()Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) „Výsledok môže byť: C: \ Windows \ System32Koniec pod

Metóda GetFile

Metódu GetFile môžete použiť veľmi podobným spôsobom ako metódu GetFolder. Po zadaní súboru, ku ktorému chcete získať prístup

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

môžeš to skopírovať:

1 fil.Copy "C: \ Dst \"

Pohni sa:

1 fil. Presuňte "C: \ Dst \"

vymaž to:

1 fil.Delete

alebo ho otvorte ako objekt TextStream:

1 fil.OpenAsTextStream

K vlastnostiam súboru, ako sú jeho atribúty, dátum a čas vytvorenia, posledného prístupu alebo poslednej úpravy, písmeno, názov a krátky názov disku, cesta a krátka cesta, veľkosť, typ a jeho nadradený priečinok je možné pristupovať rovnakým spôsobom. ako je popísané v metóde GetFolder.

wave wave wave wave wave