2009-09-25 2 views
6

내가 사용자 응용 프로그램 폴더쓰기 파일

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

관리자 계정에서 완벽하게 작동 위의 코드에 데이터를 기록 할 수 follwing을 함수를 사용하고 거부하지만, 제한된 사용자에 실패

+2

Path.Combine을 사용하면 코드가 좀 더 깨끗해집니다. – epotter

답변

13

계정 제한된 사용자에게는 일반적으로 모든 사용자에게 공통적 인 폴더에 대한 쓰기 권한이 없습니다. 그 대신에 다른 폴더에 쓰려고하지 않으시겠습니까?

예를 들어 Environment.SpecialFolder.ApplicationData (현재 사용자, 로밍 데이터) 또는 Environment.SpecialFolder.LocalApplicationData (현재 사용자, 비 로밍 데이터)을 사용할 수 있습니다.

+0

어떤 사용자가 제한된 사용자 계정으로 어떤 폴더를 선택합니까? –

+2

일반적으로 응용 프로그램 데이터는 사용자별로 다르지만 반드시 해당 컴퓨터에만 국한되지는 않으며 LocalApplicationData는 사용자 관련 항목 및 컴퓨터 관련 항목 (예 : 컴퓨터에 설치된 소프트웨어 또는 설치 경로에 따라 다름). –

+0

그래서 제한된 액세스 권한으로 비 사용자 특정 데이터를 저장하는 위치는 어디입니까? –