VBA GetFolder & GetFile (iegūt failu un mapju rekvizītus)

Šī 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ē.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave