Ovaj će vodič pokazati kako se koriste metode GetFolder i GetFile FileSystemObject.
Dobijte svojstva mape i datoteke pomoću VBA FileSystemObject
Metoda GetFolder vraća objekt Folder koji odgovara mapi na navedenoj putanji i omogućuje vam pristup njenim svojstvima. Metoda GetFile čini isto s navedenom datotekom.
Postavi VBA referencu
Prvo, kada koristite FileSystemObjects, možda ćete morati postaviti referencu na biblioteku vremena izvođenja VB skripte: otvorite uređivač Visual Basic (ALT+F11), odaberite Alati> Reference s padajućeg izbornika i označite potvrdni okvir 'Microsoft Scripting Runtime'.
FileSystemObject
Drugo, morate stvoriti FileSystemObject:
12 | Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject") |
Sada imate pristup GetFolderu i drugim metodama FileSystemObject.
Korištenje GetFolder metode
Nakon što navedete mapu kojoj želite pristupiti
1 | Postavi fld = FSO.GetFolder ("C: \ Src \") |
možete kopirati:
1 | fld.Kopirajte "C: \ NewFolder \" |
premjestiti ga:
1 | fld.Move "C: \ NewFolder \" |
Obriši:
1 | fld.Brisati |
ili stvorite novu tekstualnu datoteku u njoj:
1 | fld.CreateTextFile "NewTextFile.txt" |
Pomoću ove metode dobivate pristup svojstvima mape kao što su njezini atributi (fld.Attributes), datum i vrijeme kada je stvorena (fld.DateCreated), posljednji pristup (fld.DateLastAccessed), posljednja izmjena (fld.DateLastModified ), slovo pogona (fld.Drive), njegovo ime i kratki naziv (fld.Name, fld.ShortName), njegov put i kratki put (fld.Path, fld.HortPath), njegova veličina (fld.Veličina), upišite (fld.Type), njegovu nadređenu mapu (fld.ParentFolder), provjerite radi li se o korijenskoj mapi (fld.IsRootFolder) ili možete pregledavati, brojati itd. njene datoteke (fld.Files) ili podmape (fld. Podmape).
Spajanje svega u postupak izgledalo bi ovako:
123456789101112131415161718192021222324 | Sub FSOGetFolder ()Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")Postavi fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveIspravljanje ispisa fld.NazivDebug.Print fld.ParentFolderIspravljanje ispisa fld.PathDebug.Print fld.ShortPathIspravljanje ispisa fld.VeličinaDebug.Print fld.Files.CountIspravljanje ispisa fld.TypeZa svaki preklop U fld.SubFoldersOtklanjanje pogrešaka.Otisni preklop.NazivSljedeći preklopZa svaki fil U fld.DatotekeOtklanjanje pogrešaka. Ispis fil.NazivSljedeći filKraj podm |
Imajte na umu da ćete pritisnuti Ctrl+G kako biste vidjeli rezultat naredbe Debug.Print u neposrednom prozoru VBA.
Metoda GetParentFolderName
Alternativno na gore spomenuti način, možete pristupiti nazivu nadređene mape mape pomoću ovog koda:
1234 | Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \") |
ParentFold će u ovom slučaju biti "C: \ ParentTest \".
Imajte na umu da ova metoda neće riješiti put, niti provjerava postojanje navedene staze.
Metoda GetSpecialFolder
Metodom GetSpecialFolder, prosljeđivanjem 0, 1 ili 2 kao argumenta, možete dobiti put do Windows mape (s datotekama koje je instalirao operacijski sustav Windows), putanju do sistemske mape (s knjižnicama, fontovima i upravljačkim programima uređaja) i privremene put mape (mapa koja se koristi za spremanje privremenih datoteka).
1234567 | Sub FSOGetSpecialFolder ()Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘Rezultat može biti: C: \ Windows \ System32Kraj podm |
Metoda GetFile
Metodu GetFile možete koristiti na vrlo sličan način kao i metodu GetFolder. Nakon što navedete datoteku kojoj želite pristupiti
1 | Postavi fil = FSO.GetFile ("C: \ Src \ Test.xlsx") |
možete kopirati:
1 | fil.Kopiraj "C: \ Dst \" |
premjestiti ga:
1 | fil.Move "C: \ Dst \" |
Obriši:
1 | fil.Brisati |
ili ga otvorite kao objekt TextStream:
1 | fil.OpenAsTextStream |
Svojstvima datoteke, kao što su njezini atributi, datum i vrijeme kada je stvorena, zadnji pristup ili posljednja izmjena, slovo, naziv i kratki naziv pogona, put i kratki put, veličina, vrsta i njezina nadređena mapa mogu se pristupiti na isti način kako je opisano u metodi GetFolder.