See õpetus näitab, kuidas kasutada FileSystemObjecti meetodeid GetFolder ja GetFile.
Hankige kausta ja faili atribuudid VBA FileSystemObject abil
Meetod GetFolder tagastab kausta objekti, mis vastab määratud tee kaustale, ja võimaldab teil selle omadustele juurde pääseda. GetFile meetod teeb sama ka määratud failiga.
Määrake VBA viide
Esiteks, kui kasutate FileSystemObjects, peate võib-olla määrama viite VB skripti käitusajale: avage Visual Basic Editor (ALT+F11), valige rippmenüüst Tools> References ja märkige ruut "Microsofti skriptide käitusaeg".
FileSystemObject
Teiseks peate looma FileSystemObject:
12 | Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject") |
Nüüd on teil juurdepääs GetFolderile ja muudele FileSystemObject meetoditele.
GetFolderi meetodi kasutamine
Pärast kausta määramist, millele soovite juurde pääseda
1 | Määra fld = FSO.GetFolder ("C: \ Src \") |
saate seda kopeerida:
1 | fld.Koopia "C: \ NewFolder \" |
liiguta seda:
1 | fld. Liigutage "C: \ NewFolder \" |
Kustuta see:
1 | fld. Kustuta |
või looge sinna uus tekstifail:
1 | fld.CreateTextFile "NewTextFile.txt" |
Selle meetodi abil saate juurdepääsu kausta omadustele, nagu selle atribuudid (fld.Attributes), selle loomise kuupäev ja kellaaeg (fld.DateCreated), viimane juurdepääs (fld.DateLastAccessed), viimati muudetud (fld.DateLastModified ), selle draivi täht (fld.Drive), selle nimi ja lühinimi (fld.Name, fld.ShortName), selle tee ja lühike tee (fld.Path, fld.ShortPath), selle suurus (fld.Size), tüüp (fld.Type), selle emakaust (fld.ParentFolder), kontrollige, kas see on juurkaust (fld.IsRootFolder) või saate selle faile (fld.Files) või alamkaustu (fld. Alamkaustad).
Selle protseduuri kokku panemine näeks välja selline:
123456789101112131415161718192021222324 | Alam FSOGetFolder ()Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra fld = FSO.GetFolder ("C: \ Src \")Silumine. Prindi kogu. KuupäevSilumine. Prindi fld. SõidaSilumine. Prindi fld. NimiSilumine. Prindi fld. Vanema kaustSilumine. Prindi kogu. TeeSilumine. Prindi fld. Lühike teeSilumine. Prindi fld. SuurusSilumine. Prindi fld. Failid. LoendSilumine. Prindi trükk. TüüpIga voldi kohta Fld.SubFoldersSilumine. Prindi voltimine. NimiJärgmine voltIga faili kohta. FailidSilumine. Prindi film. NimiJärgmine filEnd Sub |
Pange tähele, et vajutage klahvikombinatsiooni Ctrl+G, et näha silumise tulemust. Prindi käsk VBA vahetu aknas.
GetParentFolderName meetod
Alternatiivina ülaltoodud viisile pääsete juurde kausta emakausta nimele, kasutades seda koodi:
1234 | Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \") |
ParentFold on sel juhul “C: \ ParentTest \”.
Pange tähele, et see meetod ei lahenda rada ega kontrolli määratud tee olemasolu.
GetSpecialFolder meetod
GetSpecialFolderi meetodiga, kui esitate argumendina 0, 1 või 2, saate oma Windowsi kausta tee (koos Windowsi operatsioonisüsteemi installitud failidega), süsteemi kausta tee (koos raamatukogude, fontide ja seadme draiveritega) kausta tee (kaust, mida kasutatakse ajutiste failide salvestamiseks).
1234567 | Alam FSOGetSpecialFolder ()Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) 'Tulemuseks võib olla: C: \ Windows \ System32End Sub |
GetFile meetod
Saate kasutada GetFile meetodit väga sarnaselt GetFolder meetodiga. Pärast faili, millele soovite juurde pääseda, täpsustamist
1 | Määra fail = FSO.GetFile ("C: \ Src \ Test.xlsx") |
saate seda kopeerida:
1 | fil.Koopia "C: \ Dst \" |
liiguta seda:
1 | fil. Liigutage "C: \ Dst \" |
Kustuta see:
1 | fil. Kustuta |
või avage see TextStreami objektina:
1 | fil.OpenAsTextStream |
Faili omadustele, nagu selle atribuudid, kuupäev ja kellaaeg, millal see loodi, viimati juurde pääseti või viimati muudeti, selle draivi täht, nimi ja lühinimi, tee ja lühike tee, suurus, tüüp ja selle kaust on juurdepääsetavad samamoodi nagu on kirjeldatud GetFolderi meetodil.