2009-09-25 3 views
6

i kullanıcı uygulama klasörününyazma dosyaları

private void WriteToLog(string source, string method, string msg) 
{ 

string LogFile =Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\test";    
LogFile = LogFile + "\\Log.txt"; 
StreamWriter sw = new StreamWriter(LogFile, true); 
string str = DateTime.Now.ToString() + "source=" + source + "\t Method=" + method + "\t" + msg; 
sw.WriteLine(str); 
sw.Flush(); 
sw.Close(); 
} 

yönetici hesaplarına mükemmel çalışıyor Yukarıdaki kod veri yazma follwing fonksiyonunu kullandık reddetmesine karşın kısıtlı bir kullanıcı başarısız

+2

Path.Combine'ı kullanırsanız, kod biraz daha temiz olacaktır. – epotter

cevap

13

hesapları Sınırlı kullanıcılar, normalde tüm kullanıcılar için ortak olan klasörlere yazma erişimine sahip değildir. Bunun yerine farklı bir klasöre yazmak istemediğinizden emin misiniz? Örneğin, Environment.SpecialFolder.ApplicationData (geçerli kullanıcı, dolaşım verileri) veya Environment.SpecialFolder.LocalApplicationData (geçerli kullanıcı, dolaşım dışı veriler) kullanabilirsiniz. Örneğin, Environment.SpecialFolder.ApplicationData (geçerli kullanıcı, dolaşım verisi) veya Environment.SpecialFolder.LocalApplicationData kullanabilirsiniz.

+0

Sınırlı kullanıcı hesapları için seçtiğim klasör –

+2

Geleneksel olarak, kullanıcıya özgü olan ancak yalnızca bu bilgisayarla sınırlı olmayan şeyler için ApplicationData kullanır ve kullanıcıya özgü ve ayrıca bilgisayara özgü şeyler için LocalApplicationData kullanırsınız (örn. bilgisayarın yüklü olduğu yazılıma veya kurulum yollarına bağlıdır. –

+0

Peki, bir kullanıcı, sınırlı erişime sahip olmayan kullanıcılara özgü verileri nerede saklar? –