C# - Alapvető fájlműveletek parancsállományokban

Windows Script Host lehetőségei 5. rész

forráskód letöltése
A sorozat korábbi számaiban érintőlegesen találkozhattunk már a FileSystemObject WSH-objektummal. A cikksorozat mai számában megismerkedhetünk néhány alapvető könyvtár- és fájlkezelő metódussal, melyekkel egyszerűen elérhetjük a számítógép fájlrendszerét, mappákat és állományokat hozhatunk létre, illetve törölhetünk, valamint szöveges fájlok tartalmát írhatjuk és olvashatjuk.
A mellékelt alkalmazásban a FileSystemObject objektum metódusaival érhetjük el a számítókép meghajtóinak könyvtár- és fájlelemeit. A program indulása után a LÉTREHOZ gombbal el kell készítenünk egy mappát és egy szöveges állományt, mellyel később a műveleteket végezzük. A szövegmezőben megadott nevekkel a Windows asztalon létrejön egy mappa, és benne az állomány.
A TÖRLÉS gombbal ezeket, amennyiben léteznek, törölhetjük. A TextBox soraiban megadott szöveget a létező állományba írhatja, a TÁROL gomb megnyomásával.
A Wsh05.wsf parancsállományban a három műveletet megvalósító funkcionalitást három <job></job> elemben helyeztük el, melyekre a script futtatásakor azonosítójukkal hivatkozunk.
Nézzük meg, milyen függvényeit használhatjuk a FileSystemObject objektumnak:
FolderExists metódus
Meghatározhatjuk, hogy a paraméterként adott mappa létezik-e, vagy sem. Visszatérési értéke TRUE, ha igen, egyébként FALSE. Szintaxisa:
object.FolderExists(mappanév);
A ’mappanév’ paraméterben kell megadnunk egy elérési útvonalat. Például:
fso.FolderExists("C:\test");
Az object elem természetesen egy FileSystemObject példány.
FileExists metódus
Meghatározhatjuk, hogy a paraméterként adott állomány létezik-e, vagy sem. Visszatérési értéke TRUE, ha igen, egyébként FALSE. Szintaxisa:
object.FolderExists(fájlnév);
A ’fájlnév’ paraméterben kell megadnunk egy elérési útvonalat. Például:
fso.FolderExists("C:\test\test.txt");
CreateTextFile metódus
Létrehoz egy szöveges állományt. Visszatérési értéke egy TextStream objektum, melyet használhatunk az állomány írására, illetve olvasására. Szintaxisa:
object.CreateTextFile(fájlnév[, overwrite[, unicode]]);
Az ’object’ elem egy FileSystemObject, vagy Folder típusú objektum.
A ’fájlnév’ paraméterben kell megadni, hogy milyen néven kívánjuk létrehozni a szöveges állományt.
Az ’overwrite’ logikai paraméterben jelezzük a metódusnak, hogy létező állomány esetén írja-e felül a tartalmat, vagy nem. Alapértelmezésben felülírja a régi állományt az újjal, vagyis értéke TRUE. A paraméter elhagyható.
Az ’unicode’ logikai paraméterben megadhatjuk, hogy a készülő állomány Unicode vagy ASCII legyen. Alapértelmezésben ez az érték FALSE, vagyis az állomány ASCII lesz.
OpenTextFile metódus
A metódussal megnyitható egy létező szöveges állomány. Szintaxisa:
object.OpenTextFile(filename[, iomode[, create]]);
A ’filename’ paraméter egy létező állomány neve elérési útvonallal.
Az ’iomode’ paraméterben megadhatjuk egy konstans segítségével, hogy írásra, olvasásra nyitjuk meg az állományt, vagy a szöveget hozzáfűzzük az eredeti tartalomhoz. Értékei:
  • ForWriting(2): megnyitás írásra.
  • ForReading(1): megnyitás olvasásra.
  • ForAppending(8): megnyitás hozzáfűzésre.
A ’create’ logikai paraméterben megadhatjuk, hogy amennyiben nem létezik az állomány, akkor jöjjön-e létre. Alapértelmezésben értéke FALSE, vagyis a fájl nem jön létre.
WriteLine metódus
A megnyitott állományba vihetünk be egy sort. Szintaxisa:
Object.WriteLine("Sor...");
Az írás befejezésekor a FileSystemObject objektum Close metódusával be kell zárnunk az állományt.
DeleteFile metódus
A megadott állományt törölhetjük a merevlemezről. Szintaxisa:
object.DeleteFile ( filespec[, force] );
A ’force’ paraméterben megadhatjuk, hogy az állomány akkor is törlődjön, ha READONLY attribútummal rendelkezik. Alapértelmezett értéke FALSE, vagyis ezek az állományok nem törlődnek.
DeleteFolder metódus
A megadott mappát törölhetjük a merevlemezről. Szintaxisa:
object.DeleteFolder ( folderspec[, force] );
A ’force’ paraméterben megadhatjuk, hogy a mappa akkor is törlődjön, ha READONLY attribútummal rendelkezik. Alapértelmezett értéke FALSE, vagyis ezek a mappák nem törlődnek.
A programban ezeket a metódusokat használja fel a Wsh05.wfs parancsállomány. A „make” azonosítóval rendelkező JOB gondoskodik arról, hogy a mappa, és a szöveges állomány létrejöjjön. A „write” azonosítóval bíró JOB-ban valósítottuk meg az állomány írását, és a „delete” JOB-ban a mappa, és az állomány törlését.
A parancsállományban mindig ellenőrizzük, hogy a bemenő paraméterek, melyek a mappa és a fájl nevét tartalmazzák, léteznek-e.

Windows Script Host lehetőségei cikksorozat