Šī apmācība parādīs, kā izmantot FileSystemObject metodes GetFolder un GetFile.
Iegūstiet mapju un failu rekvizītus, izmantojot VBA FileSystemObject
GetFolder metode atgriež mapes objektu, kas atbilst mapei noteiktā ceļā, un ļauj piekļūt tā rekvizītiem. GetFile metode dara to pašu ar norādīto failu.
Iestatiet VBA atsauci
Pirmkārt, izmantojot FileSystemObjects, iespējams, būs jāiestata atsauce uz VB skripta izpildes laika bibliotēku: atveriet Visual Basic Editor (ALT+F11), nolaižamajā izvēlnē atlasiet Tools> References un atzīmējiet izvēles rūtiņu "Microsoft skriptu izpildlaiks".
FileSystemObject
Otrkārt, jums ir jāizveido FileSystemObject:
12 | Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject") |
Tagad jums ir piekļuve GetFolder un citām FileSystemObject Methods metodēm.
GetFolder metodes izmantošana
Pēc mapes, kurai vēlaties piekļūt, norādīšanas
1 | Iestatiet fld = FSO.GetFolder ("C: \ Src \") |
varat to nokopēt:
1 | fld.Kopējiet "C: \ NewFolder \" |
pārvietotu:
1 | fld. Pārvietot "C: \ NewFolder \" |
izdzēs to:
1 | fld.Delete |
vai izveidojiet tajā jaunu teksta failu:
1 | fld.CreateTextFile “NewTextFile.txt” |
Izmantojot šo metodi, jūs piekļūstat mapes rekvizītiem, piemēram, tās atribūtiem (fld.Attributes), datumam un laikam, kad tā tika izveidota (fld.DateCreated), pēdējai piekļuvei (fld.DateLastAccessed), pēdējai modificēšanai (fld.DateLastModified ), tā diska burts (fld.Drive), tā nosaukums un īsais nosaukums (fld.Name, fld.ShortName), ceļš un īsais ceļš (fld.Path, fld.ShortPath), tā lielums (fld.Size), tā nosaukums tipa (fld.Type), tās vecāku mapi (fld.ParentFolder), pārbaudiet, vai tā ir saknes mape (fld.IsRootFolder), vai varat pārvietoties, saskaitīt utt. tās failus (fld.Files) vai apakšmapes (fld. Apakšmapes).
To visu apvienojot procedūrā izskatītos šādi:
123456789101112131415161718192021222324 | Apakš FSOGetFolder ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatiet fld = FSO.GetFolder ("C: \ Src \")Atkļūdot. Drukāt fld. Datums IzveidotsAtkļūdot. Drukāt fld. BraucietAtkļūdot. Drukāt fld. NosaukumsAtkļūdot. Drukāt fld. Vecāku mapeAtkļūdot. Drukāt. CeļšAtkļūdot. Drukāt fld. Īss ceļšAtkļūdot. Drukāt fld. IzmērsAtkļūdot. Drukāt. Faili. SkaitAtkļūdot. Drukāt fld. VeidsKatrai locīšanai fld.SubFoldersAtkļūdošana. Izdrukāt locījumu. NosaukumsNākamā locīšanaPar katru fil In fld.FilesAtkļūdot. Drukāt. NosaukumsNākamais filBeigu apakš |
Lūdzu, ņemiet vērā, ka nospiediet Ctrl+G, lai redzētu Debug.Print komandu VBA tūlītējā logā.
GetParentFolderName metode
Alternatīvi iepriekš minētajam veidam varat piekļūt mapes vecākmapes nosaukumam, izmantojot šo kodu:
1234 | Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \") |
ParentFold šajā gadījumā būs “C: \ ParentTest \”.
Lūdzu, ņemiet vērā, ka šī metode neatrisinās ceļu, kā arī nepārbauda norādītā ceļa esamību.
GetSpecialFolder metode
Izmantojot GetSpecialFolder metodi, norādot 0, 1 vai 2 kā argumentu, jūs varat iegūt Windows mapes ceļu (ar Windows operētājsistēmas instalētajiem failiem), sistēmas mapes ceļu (ar bibliotēkām, fontiem un ierīces draiveriem) un pagaidu mapes ceļš (mape, kas tiek izmantota pagaidu failu glabāšanai).
1234567 | Sub FSOGetSpecialFolder ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) Rezultāts var būt: C: \ Windows \ System32Beigu apakš |
GetFile metode
GetFile metodi var izmantot ļoti līdzīgi kā GetFolder metodi. Pēc faila, kuram vēlaties piekļūt, norādīšanas
1 | Iestatīt fil = FSO.GetFile ("C: \ Src \ Test.xlsx") |
varat to nokopēt:
1 | fil.Kopējiet "C: \ Dst \" |
pārvietotu:
1 | fil.Pārvietot "C: \ Dst \" |
izdzēs to:
1 | fil.Delete |
vai atveriet to kā TextStream objektu:
1 | fil.OpenAsTextStream |
Faila rekvizītiem, piemēram, tā atribūtiem, datumam un laikam, kad tas tika izveidots, pēdējo reizi piekļūts vai pēdējo reizi mainīts, tā diska burtam, nosaukumam un īsajam nosaukumam, ceļam un īsajam ceļam, izmēram, tipam un tā vecākajai mapei var piekļūt vienādi kā aprakstīts GetFolder metodē.