VBA GetFolder & GetFile (Pridobite lastnosti datotek in map)

Ta vadnica bo pokazala, kako uporabljati metode GetFolder in GetFile za FileSystemObject.

Pridobite lastnosti map in datotek z VBA FileSystemObject

Metoda GetFolder vrne predmet mape, ki ustreza mapi na podani poti in vam omogoča dostop do njenih lastnosti. Metoda GetFile naredi enako z navedeno datoteko.

Nastavite referenco VBA

Najprej boste morali pri uporabi FileSystemObjects nastaviti sklic na knjižnico časa izvajanja skripta VB: odprite urejevalnik Visual Basic (ALT+F11), v spustnem meniju izberite Orodja> Reference in potrdite polje "Microsoft Scripting Runtime".

FileSystemObject

Drugič, morate ustvariti FileSystemObject:

12 Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")

Zdaj imate dostop do GetFolder in drugih metod FileSystemObject.

Uporaba metode GetFolder

Ko določite mapo, do katere želite dostopati

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

lahko kopirate:

1 fld.Copy "C: \ NewFolder \"

premakni:

1 fld. Premaknite "C: \ NewFolder \"

Zbriši:

1 fld.Izbriši

ali v njem ustvarite novo besedilno datoteko:

1 fld.CreateTextFile »NewTextFile.txt«

S to metodo dobite dostop do lastnosti mape, kot so njeni atributi (fld.Attributes), datum in čas, ko je bila ustvarjena (fld.DateCreated), zadnji dostop (fld.DateLastAccessed), zadnja sprememba (fld.DateLastModified ), črko pogona (fld.Drive), njegovo ime in kratko ime (fld.Name, fld.ShortName), njegovo pot in kratko pot (fld.Path, fld.ShortPath), njegovo velikost (fld. Velikost), njeno vnesite (fld.Type), svojo nadrejeno mapo (fld.ParentFolder), preverite, ali gre za korensko mapo (fld.IsRootFolder) ali lahko prelistate, preštejete itd. njene datoteke (fld.Files) ali podmape (fld. Podmape).

Če bi vse skupaj združili v postopek, bi bilo videti tako:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Zatemni FSO kot nov datotečni sistemObjektNastavite 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.TypeZa vsak pregib V fld.SubFoldersOdpravljanje napak. Natisni pregib. ImeNaslednji pregibZa vsak fil In fld.FilesOdpravljanje napak. Natisni ime filNaslednji filEnd Sub

Upoštevajte, da morate pritisniti Ctrl+G, da vidite rezultat ukaza Debug.Print v neposrednem oknu VBA.

Metoda GetParentFolderName

Namesto zgoraj omenjenega načina lahko dostopate do imena nadrejene mape z uporabo te kode:

1234 Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

ParentFold bo v tem primeru "C: \ ParentTest \".

Upoštevajte, da ta metoda ne reši poti niti ne preveri obstoja navedene poti.

Metoda GetSpecialFolder

Z metodo GetSpecialFolder lahko z argumentom 0, 1 ali 2 dobite pot do mape Windows (z datotekami, ki jih namesti operacijski sistem Windows), pot sistemske mape (s knjižnicami, pisavami in gonilniki naprav) in začasno pot do mape (mapa, ki se uporablja za shranjevanje začasnih datotek).

1234567 Sub FSOGetSpecialFolder ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) 'Rezultat je lahko: C: \ Windows \ System32End Sub

Metoda GetFile

Metodo GetFile lahko uporabite na zelo podoben način kot metodo GetFolder. Ko določite datoteko, do katere želite dostopati

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

lahko kopirate:

1 fil.Copy "C: \ Dst \"

premakni:

1 fil.Premiči "C: \ Dst \"

Zbriši:

1 fil.Izbriši

ali pa ga odprite kot objekt TextStream:

1 fil.OpenAsTextStream

Do lastnosti datoteke, kot so njeni atributi, datum in čas, ko je bila ustvarjena, zadnji dostop ali zadnja sprememba, črka pogona, ime in kratko ime, pot in kratka pot, velikost, vrsta in njena nadrejena mapa, lahko dostopate na enak način kot je opisano v metodi GetFolder.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave