FileSystemObjectin (FSO) käyttäminen Excel VBA:ssa

FileSystemObjectin (FSO) avulla saat käyttöösi koko joukon toimintoja, joilla voit käyttää tietokoneen tiedostojärjestelmää. Tämän objektin avulla voit helposti käyttää tiedostoja, kansioita ja asemia sekä lukea ja kirjoittaa tiedostoihin.

Monet FSO:n toiminnot voisit itse kirjoittaa perinteisellä VBA:lla, mutta ne vaatisivat enemmän koodausta ja olisivat vaikeampia ylläpidettäviä ja ymmärrettäviä tulevalle kehittäjälle. FSO on kokeiltu ja testattu API (Application Programming Interface), ja se on luotettavampi kuin oma koodisi. Sitä on helppo käyttää, ja se on valmis ja käytettävissä.

FSO toimii kansainvälisten standardien ja tietokoneessasi olevien asetusten mukaisesti. Jos jaat Excel-sovellustasi maailmanlaajuisesti, niin FSO:n käyttäminen huolehtii mahdollisista maiden välisistä asetuseroista, joita omalla koodillasi olisi vaikeuksia tehdä.

FSO:n avulla voit tehdä VBA-koodilla melkein kaiken sen, mitä voisit tehdä Windowsin Tiedostonhallinnassa. Se antaa sinulle täydellisen pääsyn Windowsin tiedostojärjestelmään.

FileSystemObjectin luominen

FileSytemObject ei ole osa Excel VBA:ta. Voit käyttää FSO:ta luomalla objektin (late binding) VBA:ssa:

Sub CreateFSO()Set MyFSO = CreateObject("Scripting.FileSystemObject")End Sub

Vaihtoehtoisesti voit lisätä VBA:han viittauksen FSO-kirjastoon. Tätä kutsutaan varhaiseksi sitomiseksi, ja se on nopeampaa kuin myöhäinen sitominen, koska objektia ei tarvitse luoda, kun koodia ajetaan.

Viittauksen lisäämiseksi sinun on painettava Alt-F11-näppäintä siirtyäksesi Visual Basic -editoriin (VBE) ja sen jälkeen käytettävä VBE-valikosta ’Työkalut|Viittaukset’. Tämä näyttää ponnahdusikkunan, josta voit valita haluamasi viitteen (katso alla).

Rullaa käytettävissä olevien viitteiden luetteloa alaspäin, kunnes näet ’Microsoft Scripting Runtime’. Rastita ruutu ja napsauta OK, ja kirjasto on nyt osa sovellustasi.

DLL-kirjastotiedoston sijainti on C:\Windows\SysWOW64\scrrun.dll

Jos jaat sovellustasi muille kollegoille tai muihin paikkoihin, on tärkeää, että heillä on tämä tiedosto oikeassa sijainnissa tietokoneellaan, muuten koodisi menee pieleen.

Es kannattaa laittaa virheloukku ’WorkbookOpen’-tapahtumaan Dir-komennon avulla tarkistamaan, että tiedosto on olemassa. Jos sitä ei ole, anna varoitusviesti ja sulje Excel-tiedosto.

Viittauksen lisäämisen jälkeen voit luoda FSO:n seuraavalla koodilla:

Sub TestFSO()Dim MyFSO As New FileSystemObjectEnd Sub

Kaikki tämän artikkelin esimerkit käyttävät tätä menetelmää FSO:n luomiseksi.

Fshore-tietokannassa on käytettävissä monia metodeja ja ominaisuuksia. Ne on jaettu tässä osioihin sen mukaan, mitä niillä voi tehdä.

’Exists’-metodien käyttäminen

Voit käyttää FSO-metodia sen tarkistamiseen, onko asema, kansio tai tiedosto olemassa. Näitä metodeja on helppo käyttää, ja ne vaativat vain yhden parametrin.

Sub CheckExistance()Dim MyFSO As New FileSystemObjectMsgBox MyFSO.DriveExists("C:")MsgBox MyFSO.FolderExists("C:\temp\")MsgBox MyFSO.FileExists("C:\temp\testfile.txt")End Sub

Nämä lausekkeet palauttavat kaikki ’True’-tuloksen olettaen, että tietokoneellasi on C: -asema, siinä oleva kansio nimeltä ’Temp’ ja Temp-kansiossa oleva tiedosto nimeltä ’testfile.txt’

Parametreissa olevat merkkijonot eivät ole isojen ja pienten kirjainten välisiä. Et voi käyttää jokerimerkkejä missään näistä menetelmistä.

Et voi myöskään käyttää URL-osoitteita (Uniform Resource Locators) kuvaamaan kansion tai tiedoston sijaintia. FSO toimii pelkästään Windows-käyttöjärjestelmässä ja sen tiedostojärjestelmässä. Ulkoisen palvelimen sijaintia varten sinun on ensin kartoitettava asema ja sitten käytettävä itse aseman polkua.

Käyttämällä ’Get’-menetelmiä

FSO:lla on lukuisia menetelmiä, joilla voit hakea tietoa tiedostosta ja polusta joko jakamalla polun ja tiedoston tai hakemalla tiedosto- tai kansiotietoja, kuten luontiajankohdan (date created) tai päivämäärän (date modified).

GetAbsolutePathname

Tämä antaa täydellisen polun määritetyn aseman juuresta.

Syntaksi on:

GetAbsolutePathName (pathspec)

Sub AbsolutePath()Dim MyFSO As New FileSystemObject, Pth As StringPth = "c:..."MsgBox MyFSO.GetAbsolutePathName(Pth)End Sub

Tämä palauttaa merkkijonon ’C:\Users\Richard\Documents’. Tämä johtuu siitä, että polku on määritetty muodossa C:, jota seuraa kolme pistettä. Jokainen piste merkitsee seuraavaa tasoa kansiorakenteessa.

GetBaseName

Tämä palauttaa määritetyn tiedoston tai kansion nimen.

Syntaksi on:

GetBaseName (polku)

Sub BaseName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetBaseName(Pth)End Sub

Tämä koodi palauttaa ’testitiedosto’. Metodi palauttaa polun nimen viimeisen osion. Jos kyseessä on tiedosto, se ei palauta tiedoston päätettä.

Jos polkua ei löydy, palautetaan tyhjä merkkijono.

GetDrive

Tämän avulla voit käyttää koodia, jolla saat asematietoja määritetyn aseman kirjaimen perusteella.

Syntaksi on:

GetDrive (drivespec)

Sub DriveInfo()Dim MyFSO As New FileSystemObject, Pth As String, Dr As DrivePth = "C:"Set Dr = MyFSO.GetDrive(Pth)MsgBox Dr.FreeSpaceEnd Sub

Tämä metodi palauttaa asemaobjektin määritetyn aseman perusteella. Tämän objektin avulla voit käyttää asemaa koskevia tietoja, kuten käytettävissä olevaa vapaata tilaa.

GetDriveName

Tämä metodi erottaa aseman nimen polku-/tiedostonimijonosta.

Syntaksi on:

GetDriveName (polku)

Sub DriveName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetDriveName(Pth)End Sub

Tämä palauttaa ’C:’

GetExtensionName

Tämä palauttaa määritellyn polun tiedostosuffiksin.

Syntaksi on:

GetExtensionName (polku)

Sub ExtensionName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetExtensionName(Pth)End Sub

Tämä palauttaa ’txt’.

Jos tiedostoa ei ole määritetty, palautetaan tyhjä merkkijono.

GetFile

Tämä metodi palauttaa tiedosto-olion, joka sisältää erilaisia tietoja itse tiedostosta.

Syntaksi on:

GetFile (filespec)

Sub FileInfo()Dim MyFSO As New FileSystemObject, Pth As String, Fn As FilePth = "C:\temp\testfile.txt"Set Fn = MyFSO.GetFile(Pth)MsgBox Fn.DateCreatedEnd Sub

Tämä palauttaa päivämäärän ja kellonajan, jolloin määritelty tiedosto on luotu. Jos tiedostoa ei ole määritetty tai tiedostoa ei ole olemassa, saat virheilmoituksen ’tiedostoa ei löydy’.

Sub FileName()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\testfile.txt"MsgBox MyFSO.GetFileName(Pth)End Sub

Tämä palauttaa ’testitiedosto.txt’.

GetFolder

Tämä luo kansioobjektin määritetyn polun peruskansiolle. Polku saa sisältää vain kansioiden nimiä. Tiedostonimiä ei saa sisältyä, muuten tulee virhe.

Syntaksi on:

GetFolder (folderspec)

Sub FolderInfo()Dim MyFSO As New FileSystemObject, Pth As String, Fo As FolderPth = "C:\temp"Set Fo = MyFSO.GetFolder(Pth)MsgBox Fo.DateCreatedEnd Sub

Kansioobjektissa on erilaisia tietoja, joita voidaan käyttää. Tässä tapauksessa se palauttaa päivämäärän, jolloin kansio on luotu.

Voit käyttää tätä metodia myös kaikkien tietyn kansion sisällä olevien tiedostojen nimien hakemiseen:

Sub FileNames()Dim MyFSO As New FileSystemObject, Pth As String, Fo As Folder, Fn As FilePth = "C:\temp"Set Fo = MyFSO.GetFolder(Pth)For Each Fn In Fo.Files MsgBox Fn.NameNext FnEnd Sub

Tämä koodi käy läpi kansiota ’Temp’ ja näyttää jokaisen löydetyn tiedoston nimen.

GetParentFolderName

Tämä metodi palauttaa kansioiden nimet kansiohierarkiassa seuraavalla tasolla.

Syntaksi on:

GetParentFolderName (path)

Sub FolderName()Dim MyFSO As New FileSystemObject, Pth As String, Fo As FolderPth = "C:\users\richard"MsgBox MyFSO.GetParentFolderName(Pth)End Sub

Tämä palauttaa ’Users’, koska tämä on kansion ’richard’ ’parent’.

Käyttämällä ’Create’-metodeja

Toiminto-ohjelman avulla voit luoda uuden kansion ja polun sekä luoda tekstitiedoston.

CreateFolder

Voit määritellä uuden kansiopolun nimen luotavaksi. Vaarana on, että jos kansio on jo olemassa, tulee virheilmoitus. Voit käyttää metodia ’FolderExists’ varmistaaksesi, että näin ei tapahdu.

Syntaksi on:

CreateFolder (foldername)

Sub CreateNewFolder()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\MyFolder"If MyFSO.FolderExists(Pth) = False Then MyFSO.CreateFolder (Pth)End IfEnd Sub

Tämä koodi luo uuden kansion nimeltä ’OmaKansio’ olemassa olevan polun ’C:\temp’ alle.

CreateTextFile

Tämän metodin avulla voit luoda yksinkertaisen tekstitiedoston ja kirjoittaa suoraan siihen.

Syntaksi on:

CreateTextFile (tiedostonimi, ])

Sub CreateTextFile()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C:\temp\Myfile.txt"Set Fn = MyFSO.CreateTextFile(Pth,True)Fn.Write "Add my own text here" & vbLf & "This is the second line"Fn.CloseEnd Sub

Tässä koodissa luodaan ’C:’-aseman ’Temp’-kansioon tekstitiedosto nimeltä ’Myfile.txt’ ja kirjoitetaan siihen kaksi riviä tekstiä.

Huomaa, että kirjoitettavaan merkkijonoon liitetään rivinvaihtomerkki.

Jos polku, johon kirjoitat, ei ole olemassa, tulee virheilmoitus. Voit käyttää ’FolderExists’-menetelmää tämän tarkistamiseen ennen tiedoston luomista.

Tässä on valinnainen parametri, jolla voidaan tarvittaessa korvata olemassa oleva tiedosto – tämä voi olla True tai False. Oletusarvo on True.

Kopiointimenetelmien käyttäminen

Voit käyttää näitä menetelmiä tiedoston tai kansion kopioimiseen toiseen paikkaan.

KopioiTiedosto

Menetelmällä kopioidaan tiedosto kansiosijainnista toiseen. Huomaa, että kopiointi epäonnistuu, jos kohdesijaintiin on asetettu vain luku -attribuutti.

Syntaksi on:

CopyFile lähde, kohde,

Sub CopyFile()Dim MyFSO As New FileSystemObjectMyFSO.CopyFile "C:\temp\*.txt", "C:\temp\myfolder\", TrueEnd Sub

Tämä koodi kopioi kaikki ’C:\temp’-osoitteessa olevat teksti-(txt-)tiedostot ’C:\temp\myfolder\’-osoitteeseen korvaten tiedoston tarvittaessa. Overwrite-koodin oletusasetus on True.

Voit käyttää tähteä (*) jokerimerkkinä tiedostonimissä, mutta et voi käyttää kysymysmerkkiä (?) jokerimerkkinä yksittäisten merkkien esittämiseen.

CopyFolder

Menetelmällä voit kopioida kokonaisen kansion paikasta toiseen.

Syntaksi on:

CopyFolder lähde, kohde,

Sub CopyFolder()Dim MyFSO As New FileSystemObjectMyFSO.CopyFolder "C:\temp\*", "C:\users\richard\"End Sub

Tämä koodi kopioi kaikki kansiot ja tiedostot, jotka ovat ’C:\temp’ alapuolella olevaan kansioon ’C:\_users\richard’. Uusi luotu kansio on ’C:\users\richard\myfolder’, koska ’C:\temp’-kansiossa oli kansio nimeltä ’myfolder’.

Menetelmää käytettäessä on neljä mahdollista lopputulosta:

  • Jos määränpäätä ei ole olemassa, kopioidaan lähdekansio sisältöineen.
  • Jos kohde on jo olemassa, tapahtuu virhe.
  • Jos kohde on kansio, kopioidaan lähdekansio ja sen sisältö. Virhe tapahtuu, jos Overwrite on asetettu arvoon False ja määränpäässä on jo kopio tiedostosta.
  • Jos määränpää on asetettu vain lukuasetukseksi, virhe tapahtuu, jos Overwrite on asetettu arvoon false.

Tämä menetelmä pysähtyy ensimmäiseen kohtaamaansa virheeseen. Ennen virheen ilmenemistä onnistuneita toimia ei palauteta.

Käyttämällä ’Siirrä’-menetelmiä

Menetelmiä voidaan käyttää tiedostojen tai kansioiden siirtämiseen toisiin paikkoihin. Tämä on sama kuin leikkaaminen yhdestä paikasta ja liittäminen toiseen paikkaan. Huomaa, että jos siirrettävä tiedosto on avoinna, Siirrä-metodi epäonnistuu virheilmoituksella.

SiirräTiedosto

Tätä metodia käytetään tietyn tiedoston siirtämiseen toiseen paikkaan. Jokerimerkit ovat sallittuja lähteen viimeisessä polkukomponentissa.

Syntaksi on:

MoveFile lähde, kohde

Sub MoveAFile()Dim MyFSO As New FileSystemObjectMyFSO.MoveFile "C:\temp\*", "C:\temp\myfolder"End Sub

Tämä koodi siirtää kaikki tiedostot, jotka löytyvät osoitteesta ’C:\temp’, osoitteeseen ’C:\temp\myfolder’.

Lähde- ja kohdekansioiden on oltava olemassa, sillä kohdekansiota ei luoda automaattisesti.

Tämä metodi pysähtyy ensimmäiseen kohtaamaansa virheeseen. Ennen virheen ilmenemistä onnistuneita toimia ei palauteta.

MoveFolder

Tämä metodi siirtää tietyn kansion paikasta toiseen.

Syntaksi on:

MoveFolder (lähde, kohde)

Sub MoveAFolder()Dim MyFSO As New FileSystemObjectMyFSO.MoveFolder "C:\temp\myfolder", "C:\temp\mydestination"End Sub

Tämä koodi siirtää kansion ’myfolder’ ja sisällön kansioon ’mydestination’. ’myfolder’ käytännössä poistetaan ja ’mydestination’ luodaan yhdessä ’myfolderin’ sisällön kanssa.

Jos kohdekansio on jo olemassa, syntyy virheilmoitus.

Using the ’Delete’-metodien käyttäminen

Näillä metodeilla poistetaan tiedostoja tai kansioita. Niitä on käytettävä varovasti, koska ei ole rollback- tai undo -menetelmiä, jos jokin menee pieleen.

DeleteFile

Tämä poistaa yksittäisiä tiedostoja tai tiedostoryhmän käyttämällä jokerimerkkejä.

Syntaksi on:

DeleteFile filespec,

Sub DeleteFiles()Dim MyFSO As New FileSystemObjectMyFSO.DeleteFile "C:\temp\*"End Sub

Tämä koodi poistaa kaikki tiedostot kansiosta ’C:\temp’

Pakotus-parametri on valinnainen ja sen arvoksi asetetaan True tai False. Jos sen arvoksi asetetaan True, vain lukuoikeudelliset tiedostot poistetaan. Oletusarvo on False.

DeleteFolder

Tämä metodi poistaa määritetyn kansion ja sen sisällön.

Syntaksi on:

DeleteFolder folderspec,

Sub DeleteFolders()Dim MyFSO As New FileSystemObjectMyFSO.DeleteFolder "C:\temp\MyDestination"End Sub

Tämä koodi poistaa kansion ’MyDestination’ ja kaikki kansiossa olevat tiedostot. Kansio ’temp’ jää jäljelle.

Parametri Force on valinnainen ja sen arvoksi asetetaan True tai False. Jos sen arvoksi asetetaan True, vain lukuoikeudelliset kansiot poistetaan. Oletusarvo on False.

Polun viimeisessä komponentissa voidaan käyttää pilkkumerkkejä. Jos kansiota ei löydy, tulee virheilmoitus.

Tämä menetelmä pysähtyy ensimmäiseen kohtaamaansa virheeseen. Ennen virheen ilmenemistä onnistuneita toimenpiteitä ei palauteta.

Muut FSO:n metodit

OpenAsTextStream.

Tämä metodi avaa määritetyn tiedoston tekstivirtaobjektina ja sallii sen lukemisen tai kirjoittamisen. Tämän metodin etuna on, että se voi avata minkä tahansa tiedostotyypin ja poimia käytettävissä olevan tekstin.

Syntaksi on:

OpenAsTextStream (])

Parametri ’iomode’ sallii vain lukemisen (1), lukemisen/kirjoittamisen (2) ja liittämisen (8). Parametri read/write korvaa tiedoston.

Parametrin ’format’ arvoksi asetetaan -2 järjestelmän oletusarvoksi, -1 tiedoston avaamiseksi Unicode-muodossa ja 0 tiedoston avaamiseksi ASCII-muodossa (American Standard Code for Information Interchange).

Sub TextStream()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")Set ts = f.OpenAsTextStream(2)ts.Write "My new text"ts.CloseSet ts = f.OpenAsTextStream(1)s = ts.ReadLineMsgBox sts.CloseEnd Sub

Tällä koodilla haetaan olemassa oleva tekstitiedosto ja luodaan se objektiksi metodin ’GetFile’ avulla. Sitten se avaa tekstivirran luku-/kirjoitusmuodossa (2) ja kirjoittaa tekstirivin. Tämän jälkeen tiedosto suljetaan ja avataan uudelleen lukuna (1) ja siitä luetaan rivi, joka sitten näytetään viestiruutuna.

Huomaa, että luettu rivi on sijoitettava muuttujaan, ennen kuin se voidaan näyttää viestiruudussa.

BuildPath

Tämä metodi liittää kansion tai tiedoston nimen olemassa olevan kansiopolun loppuun. Tämä luo vain tekstijonon eikä varsinaisesti luo uutta kansiota.

Syntaksi on:

BuildPath (path, name)

Sub BuildPth()Dim MyFSO As New FileSystemObjectnp = MyFSO.BuildPath("C:\temp", "ANewFolder")MsgBox npEnd Sub

Tämä näyttää ’C:\temp\ANewFolder’. Jos tätä kansiota kuitenkin halutaan oikeasti käyttää, on käytettävä metodia ’CreateFolder’.

OpenTextFile

Tämän metodin avulla voidaan avata tiedostoja ja lukea niistä tai kirjoittaa niihin asetettujen parametrien mukaisesti. Se toimii samalla tavalla kuin OpenAsTextStream-metodi.

Syntaksi on:

OpenTextFile (tiedostonimi, ]])

Parametrin ’iomode’ avulla voidaan käyttää ForReading, ForWriting ja ForAppending. ForWriting-parametri korvaa tiedoston.

Parametri ’create’ on Boolean-arvo. True tarkoittaa, että uusi tiedosto luodaan, jos määritettyä tiedostonimeä ei ole olemassa. False tarkoittaa, että tiedostoa ei luoda, jos tiedostonimeä ei löydy. Oletusarvo on False.

Parametrin ’format’ arvoksi voidaan asettaa TristateFalse, TristateMixed, TristateTrue ja TristateUseDefault riippuen siitä, onko tiedosto ASCII- vai Unicode-tiedosto.

Sub OpenTxtFile()Dim MyFSO As New FileSystemObjectSet ts = MyFSO.OpenTextFile("C:\temp\myfile.txt", ForReading, False, TristateUseDefault)s = ts.ReadLineMsgBox sts.CloseEnd Sub

Tämä koodi lukee rivin tekstitiedostosta ’myfile.txt’.

OpenTextFile-metodin etu OpenAsTextStreamMethodiin verrattuna on se, että siinä on pudotusvalikot parametreille, jotka ovat mielekkäämpiä kuin yrittää muistaa sopivat numeeriset arvot eri parametrivaihtoehdoille.

Verkko-operaattorin ominaisuudet

Laitteet

Tämässä ominaisuudessa on kokoelma käytettävissä olevia levyasemia tietokoneessa.

Sub Drv()Dim MyFSO As New FileSystemObject, d As DriveSet Dr = MyFSO.DrivesFor Each d In Dr MsgBox d.DriveLetterNext dEnd Sub

Tämä koodi palauttaa jokaisen tietokoneessa käytettävissä olevan aseman kirjaimen.

Name

Tämä palauttaa määritetyn tiedoston tai kansion nimen.

Sub NameExample()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Name & " on Drive " & UCase(f.Drive) & vbCrLfi = i & "Created: " & f.DateCreated & vbCrLfi = i & "Last Accessed: " & f.DateLastAccessed & vbCrLfi = i & "Last Modified: " & f.DateLastModifiedMsgBox iEnd Sub

Tämä koodi antaa tiedoston nimen ja tietoja siitä Drive-ominaisuuden avulla.

Path

Path-ominaisuus erottaa polun pois tiedoston määrittelystä.

Sub PathExample()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")i = f.Path & f.Name & " on Drive " & UCase(f.Drive) & vbCrLfi = i & "Created: " & f.DateCreated & vbCrLfi = i & "Last Accessed: " & f.DateLastAccessed & vbCrLfi = i & "Last Modified: " & f.DateLastModifiedMsgBox iEnd Sub

Tämä esimerkki toimii samalla tavalla kuin Name-esimerkki, paitsi että nyt annetaan tiedoston polku.

Size

Size-ominaisuus antaa kansion tai tiedoston koon.

Sub FSize()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFolder("C:\temp\")MsgBox f.SizeEnd Sub

Tämä yllä oleva koodi palauttaa kansion ’C:\temp\’ koon.

Sub FSize()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.SizeEnd Sub

Tämä yllä oleva koodi palauttaa tiedoston ’myfile.txt’.

Type

Type-ominaisuus palauttaa tiedosto- tai kansiotyypin tekstin.

Sub FType()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFolder("C:\temp\")MsgBox f.TypeEnd Sub

Tämä ylläoleva koodi palauttaa tekstin ’Tiedostokansio’.

Sub FType()Dim MyFSO As New FileSystemObjectSet f = MyFSO.GetFile("C:\temp\myfile.txt")MsgBox f.TypeEnd Sub

Tämä ylläoleva koodi palauttaa tekstin ’Tekstidokumentti’.

Huomaa, että jokaisessa esimerkeissämme käytetään ’GetFolder’- ja ’GetFile’-komentoja.

Vastaa

Sähköpostiosoitettasi ei julkaista.