
A mellékelt példa kipróbálása előtt két lépést meg kell tennünk: az első, hogy az AddDelContents.reg állomány 7. sorában módosítani kell a DeleteContents.exe alkalmazás elérési útvonalát a megfelelőre. A második lépésben futtassuk is le az AddDelContents.reg állományt.
A megvalósítandó cél tehát az, hogy a mappák gyorsmenüjében jelenjen meg egy Tartalom törlése pont, melynek segítségével a mappa tartalma törlődik úgy, hogy a mappa, valamint a gyermekmappák nem törlődnek.
A megoldás érdekében létrehoztunk egy konzolalkalmazást, mely az aktuális mappa elérési útvonalát kapja parancssori argumentumként, majd rekurzív módon a fenti szempontok szerint törli a mappák tartalmát.
A Main metódusban lekérdezzük a parancssori argumentumot, majd meghívjuk a DeleteFiles metódust.
static void Main(string[] args)
{
if (args.Length == 1)
{
DirectoryInfo di = new DirectoryInfo(args[0]);
DeleteFiles(di.FullName);
...
A DeleteFiles metódusban először lekérdezzük a mappa fájljainak és almappáinak nevét, majd ezeket egy-egy tömbben helyezzük el.
DirectoryInfo curdir = new DirectoryInfo(directory);
DirectoryInfo[] directories;
FileInfo[] files;
directories = curdir.GetDirectories();
files = curdir.GetFiles();
Ezt követően egy ciklusban minden mappára meghívjuk a DeleteFiles metódust.
foreach (DirectoryInfo di in directories)
{
eleteFiles(di.FullName);
}
Egy másik ciklusban a fájlokat rendre kitöröljük.
foreach (FileInfo fi in files)
{
fi.Delete();
}
Annak érdekében, hogy a műveletet az Intéző gyorsmenüjéből végezhessük el, a Rendszerleíró adatbázis HKEY_CLASSES_ROOT\Directory\Shell kulcsa alatt kell létrehoznunk egy Install kulcsot, és megadnunk a feliratot. A mellékelt AddDelContents.reg állományban a következő sorral érhetjük el ezt.
[HKEY_CLASSES_ROOT\Directory\Shell\Install]
@="Tartalom törlése"
Ahhoz, hogy a műveletet elvégezhessük, egy parancssort kell elindítanunk, majd a parancsot argumentumként átadni neki. Azt is meg kell oldanunk, hogy a parancssor, miután elvégezte a műveletet, záródjon is be. Ekkor kell alkalmaznunk a /c kapcsolót.
A .reg állományban a következő sorokkal valósítható meg, hogy a menüpont megnyomása után végrehajtódjon a művelet.
[HKEY_CLASSES_ROOT\Directory\Shell\Install\Command]
@="<elérési út>:\\DeleteContents.exe \"%1\""
A mellékelt RemoveDelContents.reg állomány segítségével megszüntethetjük a létrehozott bejegyzéseket, és a menüpont ezek után nem érhető el.
[-HKEY_CLASSES_ROOT\Directory\Shell\Install]
[-HKEY_CLASSES_ROOT\Directory\Shell\Install\Command]