2009-09-25 17 views
6

he utilizado la función follwing para escribir datos en la carpeta de aplicaciones de usuarioescritura de archivos a la carpeta de datos de aplicación común negaron

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(); 
} 

el código anterior funciona perfectamente en las cuentas de administrador, pero fracasaron en el usuario limitado cuentas

+2

El código sería un poco más limpio si utilizó Path.Combine. – epotter

Respuesta

13

Los usuarios limitados normalmente no tienen acceso de escritura a las carpetas que son comunes a todos los usuarios. ¿Estás seguro de que no quieres escribir en una carpeta diferente? Por ejemplo, puede usar Environment.SpecialFolder.ApplicationData (usuario actual, datos de itinerancia) o Environment.SpecialFolder.LocalApplicationData (usuario actual, datos no itinerantes).

+0

qué carpeta elijo para cuentas de usuario limitadas –

+2

Convencionalmente, usaría ApplicationData para cosas que son específicas del usuario pero no necesariamente limitadas a esa computadora, y LocalApplicationData para cosas que son específicas del usuario y también específicas de la computadora (por ejemplo, datos que depende del software instalado de la computadora o de las rutas de instalación). –

+0

Entonces, ¿dónde almacenaría uno de los datos no específicos del usuario con acceso limitado, ¿verdad? –

Cuestiones relacionadas