Forum
Merhaba
FileStream fs = File.Create(@"C:\Windows\System32\batub.dll");
bu kodu yazaraktan bir dll dosyası oluşturuyorum. Bunun içerisine nasıl bir metin ekleyebilirim.
Teşekkürler
Aşağıdaki şekilde deneyin;
using (FileStream fs = new FileStream(@"C:\Windows\System32\batub.dll", FileMode.Append, FileAccess.Write))
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine("TEST");
}
volkan bey system32 içerisine yazdırırken erişim engellendi hatası ile karşılaşıyorum. Bu kendi bilgisayarımda kaldırdım diyelim. Başka bir bilgisayara bu programı kurarken bu hatayla karşılaşmamam için ne yapmam lazım. Bilgi verebilir misiniz ?
Teşekkürler
volkan bey system32 içerisine yazdırırken erişim engellendi hatası ile karşılaşıyorum. Bu kendi bilgisayarımda kaldırdım diyelim. Başka bir bilgisayara bu programı kurarken bu hatayla karşılaşmamam için ne yapmam lazım. Bilgi verebilir misiniz ?
Teşekkürler
Volkan Bey daha iyisini bilir; benim fazla bir bilgim olmamakla birlikte, bu tip programlar write yaparken ki özellikle C/C++ gibi diller için register kaydı gerektiriyordu. C# da pek register kaydı gerekmez. En nihayetinde programı kullanan kişinin yönetici izni de olması gereklidir. Çünkü program ekle/kaldır muamelesi yapılır sistem dosyalarına erişim için. O da yönetici izni gerektirmektedir.
System32 dizininde bu tarz bir işlem yapmak için uygulamanın yönetici yetkisine sahip bir kullanıcı tarafından çalıştırılması gerekir.
Volkan Bey
Bir programı gizli dosya olarak System32 altında bir yere kaydedeceğim. Fakat c# ile dosya kaydetmeye çalıştığım zaman erişim engellendi diye bir hata alıyorum. Bu hatayı nasıl aşabilirim ? dosya izinlerinden tam izin veremiyorum system32 dosyasına. Sorun bu olabilir mi ?
Bu konu hakkında yardım ederseniz sevinirim
Teşekkürler
Anladığım kadarıyla oluşturacağınız dosyayı kullanıcıdan gizlemek istiyorsunuz. Eğer durum buysa IsolatedStorageFile doğru seçim olacaktır.
Aşağıda yazma, okuma ve dizin bilgisine erişmeyi tarif eden bir örnek paylaşıyorum.
using (IsolatedStorageFile storage = IsolatedStorageFile.GetMachineStoreForAssembly())
{
// Yaz
using (IsolatedStorageFileStream dllStream = new IsolatedStorageFileStream("batub.dll", FileMode.Create, storage))
{
using (StreamWriter sw = new StreamWriter(dllStream))
{
sw.WriteLine("TEST");
}
}
//Oku
using (IsolatedStorageFileStream dllStream = new IsolatedStorageFileStream("batub.dll", FileMode.Open, storage))
{
using (StreamReader reader = new StreamReader(dllStream))
{
Console.WriteLine(reader.ReadToEnd());
}
//Dizin
Console.WriteLine(dllStream.GetType().GetField("m_FullPath", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dllStream).ToString());
}
}
Anladığım kadarıyla oluşturacağınız dosyayı kullanıcıdan gizlemek istiyorsunuz. Eğer durum buysa IsolatedStorageFile doğru seçim olacaktır.
Aşağıda yazma, okuma ve dizin bilgisine erişmeyi tarif eden bir örnek paylaşıyorum.
using (IsolatedStorageFile storage = IsolatedStorageFile.GetMachineStoreForAssembly())
{
// Yaz
using (IsolatedStorageFileStream dllStream = new IsolatedStorageFileStream("batub.dll", FileMode.Create, storage))
{
using (StreamWriter sw = new StreamWriter(dllStream))
{
sw.WriteLine("TEST");
}
}
//Oku
using (IsolatedStorageFileStream dllStream = new IsolatedStorageFileStream("batub.dll", FileMode.Open, storage))
{
using (StreamReader reader = new StreamReader(dllStream))
{
Console.WriteLine(reader.ReadToEnd());
}
//Dizin
Console.WriteLine(dllStream.GetType().GetField("m_FullPath", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dllStream).ToString());
}
}
Volkan bey cevabınız için teşekkür ederim. Fakat ben bu oluşturulan dosyayı bilgisayarda gizli öğeleri de göstermeme rağmen göremiyorum. Bir de program dosyaları veya program files altına kaydetmeye çalıştığımda "Verilen yolun biçimi desteklenmiyor." hatasını alıyorum. bu sorunu nasıl çözebilirm acaba ?
Teşekkürler