Ehhez az Advapi32.dll rendszer állomány EncryptFile, DecryptFile függvényét kell felhasználnunk. Mivel ezek külső függvények, így importálnunk kell őket a használatukhoz és hogy szép is legyen a megoldás ne csak működőképes, rögtön hozzunk létre hozzá egy új osztályt FileSystem névvel.
Importáláshoz adjuk meg a DLL nevét.
Valamint annak deklarációját, ahol az extern-nel jelezzük, hogy külső függvényről van szó.
static public extern bool EncryptFile(string lpFileName);
[DllImport("ADVAPI32")]
static public extern bool DecryptFile(string lpFileName, Int32 dwReversed);
}
Mivel statikusnak deklaráltuk a függvényeinket, így egyszerűen felhasználhatóak. Ha egy állomány titkosítási attribútumát be szeretnénk kapcsolni, akkor hívjuk az EncryptFile függvényt, paraméterként átadva az állomány nevét, elérési útvonallal.
private void button1_Click(object sender, System.EventArgs e)
{
FileSystem.EncryptFile(Application.StartupPath + "\\_secret.txt");
}
A titkosítás feloldásához, vagyis az attribútum törléséhez a DecryptFile-t kell meghívnunk, melynek paraméterezése megegyezik az EncryptFile függvénnyel.
private void button2_Click(object sender, System.EventArgs e)
{
FileSystem.DecryptFile(Application.StartupPath + "\\_secret.txt", 0);
}