HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Állomány figyelő alkalmazás


Példaprogram letöltése

7650 bájt

A vírusok világában még különféle védelmi szoftverek, vírus keresők mellett sem lehetünk teljes biztonságban. Mivel a vírusok előszeretettel hoznak létre saját állományokat, futtatható alkalmazásokat a háttértárakon, így jó támadási felületet nyújtanak számunkra az ellenük való küzdelemben, ha mindig tudomásunk van arról, hogy milyen állományok jönnek létre mondjuk a C: meghajtón. Így könnyen kiszúrhatjuk, hogy valami nincs rendben, ha mondjuk létrejön egyszer csak egy-két EXE, anélkül, hogy telepítettünk volna programot a számítógépre.
Ebben a cikkben egy olyan alkalmazást készítünk, mely figyeli és naplózza, hogy milyen állományok jönnek létre a háttértáron.

A program futtatása előtt a LogPath-ban lévő elérési útvonalat változtassa meg egy olyanra, mely létezik az Ön gépén és ahová a program által készített naplóállományokat helyezni szeretné.
    private string LogPath = "d:\\FileWatcher\\"; 
A megvalósítás viszonylag egyszerű: szükségünk lesz egy FileSystemWatcher komponensre a ToolBox Components lapjáról. Ennek segítségével értesítést kaphatunk arról, hogy egy adott elérési úton belül milyen állományok jönnek létre. Ezt a komponens Path property-jében adhatjuk meg, ahová most a C:\ értéket írjuk. Ezt követően állítsuk az IncludeSubdirectories property-t igazra. Ennek következménye az lesz, hogy nem csak a Path-ban megadott elérési útvonalon belüli állományok lesznek figyelemmel kísérve, hanem az ebből nyíló almappákon belüliek is. Vagyis a mi esetünkben a teljes C meghajtó.
További előkészítő lépésként a NotifyFilter-nél válasszuk ki a FileName értéket, ezzel az állomány nevek változásait tudjuk figyeltetni.
Végül hozzunk létre a komponens Created nevű eseményéhez egy eseménykezelőt. A Created akkor jön létre, ha a megadott elérési úton egy új állomány létrejön.
Ebben az esetben a paraméterként kapott „e” változó FullPath property-jéből elérhetjük a létrejött állomány nevet teljes elérési útvonallal együtt.
    private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
    {
      String fp = e.FullPath;
Mielőtt tárolnánk a naplóállományunkba ezt, lehetőségünk van különféle állományok, vagy almappák kiszűrésére. Így például, ha nem szeretnénk naplózni azt, hogy a Recycle, vagyis a Lomtár mappába létrejön állomány, akkor ezt egy egyszerű vizsgálattal kiszűrhetjük.
      if ((fp.IndexOf("recycle")==-1) && (fp.IndexOf("recent")==-1))
      {
A naplózás elvégzéséhez egy TXT állományt hozunk létre a LogPath-ban megadott elérési útvonalon az aznapi dátum felhasználásával. Ehhez a StreamWriter osztályt használjuk.
        StreamWriter sw = new StreamWriter(LogPath + DateTime.Now.ToString("yyyyMMdd") + ".txt", true);      
A StreamWriter WriteLine függvényt használva az állomány végéhez hozzáírhatunk egy új sort, melyben az aktuális időpont, valamint a létrejött állomány neve szerepel.
        sw.WriteLine(DateTime.Now.ToString("T") + " - " + fp);
Végül zárjuk a naplóállományt.
        sw.Close();
      }
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 403. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |