biliG.d'nin izin sınıfı için yazdığım kodlar:
module biliG;
import dkvG;
import std.string;
import std.path;
import std.conv;
import std.process;
class izin{
this()
{
dkvG taban=new dkvG;
if(!denetle("ayar"d)){
taban.v_yarat("ayar"d);
}
int izin(const dchar[] yol_)
{
taban.t_yarat("izinler"d,"ayar"d);
/*linux için anahtar ekleme*/
immutable dchar[] linux_ad = dtext(yol_,"_linux");
// immutable dchar[] windows_yol = replace(text(yol_),text("/"),text("\\"));
taban.veri_ekle(yol_,linux_ad,yol_,"izinler"d,"ayar"d);
immutable dchar[] windows_ad = dtext(yol_,"_windows");
immutable dchar[] windows_yol = replace(text(yol_),text("/"),text("\\"));
taban.veri_ekle(windows_yol,windows_ad,yol_,"izinler"d,"ayar"d);
taban.veri_ekle("izin_yok"d,"izin"d,yol_,"izinler"d,"ayar"d);
return 0;
}
}
int izin_iptal(const dchar[] yol_)
{
taban.anahtar_değiştir("izin_yok"d,"izin"d,yol_,"izinler"d,"ayar"d);
return 0;
}
int izin_ver(const dchar[] yol_)
{
taban.anahtar_değiştir("izin_var"d,"izin"d,yol_,"izinler"d,"ayar"d);
return 0;
}
bool izin_var_mı(const dchar[] yol_)
{
string izin_türü = taban.anahtar_oku("izin"d,yol_,"izinler"d,"ayar"d);
if(izin_türü == "izin_var"){
return true;
} else if(izin_türü == "izin_yok"){
return false;
} else {
throw new Exception("Hata; izin türü belirlenemedi.");
}
}
int izin_sil(const dchar[] yol_)
{
string yol = "ayar"~sep~"izinler"~sep~yol_;
string silmeYolu=to!string(yol);
string silKomutu="rm "~silmeYolu~" -rf";
system(silKomutu);
return 0;
}
}
Şuan daha dkvG'ye eklemedim hatta kodu denemedim bile :-) Ama genel tasarım için soruyorum. Sizce mantığı nasıl iyi mi ?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply