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.