2008-11-07 6 views
0

특수 폴더 경로를 전체 파일 이름으로 변환하는 방법이 있습니까? 아니면 내 코드를 작성할 필요가 있습니까? 존재)특수 폴더를 전체 파일 이름으로 변환하는 방법

예 : 사용자가 변경할 수있는 응용 프로그램의 서식 파일 이름을 저장하려고합니다.이 파일은 LocalApplicationData 폴더에 있습니다. 내가 저장 싶은 것이

는 형식으로 파일의 위치입니다 :

퍼센트 LOCALAPPDATA % \ MyApp를 \ 템플릿 \ 보고서 Template.xls이 응용 프로그램 파일이 많은 사용할 수 있도록

사용자가 열 때 각 사용자는 자신의 로컬 앱 디렉토리에서 보고서 템플릿을 가져옵니다.

차라리 모든 가능한 특별 통과하는 것보다, 나를 위해이 일을 전화 나 파일 위치를 저장하기 위해 올 때 그러나 System.IO이,

replace("%LOCALAPPDATA%", _ 
    System.Environment.GetFolderPath(
     System.Environment.SpecialFolder.LocalApplicationData)) 

and vice versa 

쓰기 (또는 유사) 수 폴더? 일부 그래도 난 다시 변환 할 수 내장 된 방법이라고 생각하지 않습니다 둘러보고 후 Environment.ExpandEnvironmentVariables

:에서

답변

4

봐. 당신이 생각을 할 수

는 :

static void Main(string[] args) 
{ 
    var values = Enum.GetValues(typeof(Environment.SpecialFolder)); 

    foreach (Environment.SpecialFolder value in values) 
     Console.WriteLine(value + " : " + Environment.GetFolderPath(value)); 

    Console.ReadKey(); 
} 
+0

아 ... 나는 아침에 커피를 마시지 않고서는 안된다. –

+0

고맙습니다. 먼저 이것을 시도했지만, % LOCALAPPDATA %와 같은 항목이 설정 되었기 때문에 Visa에서 작동하지만 환경 변수로 설정되지 않은 XP에서는 작동하지 않습니다! – GalleySlave

+0

나는 이것이 완전히 다른 문제라고 생각한다. – chakrit

0

"특수 폴더"를 식별하는 일반적인 윈도우 방법으로 자신의 CSIDL입니다. Environment.SpecialFolder는 그 주위에 작은 래퍼입니다. 언급했듯이 chakrit의 게시물에 대한 의견에서 대부분의 CSIDL에는 해당 환경 변수가 없습니다. 이것은 몇 가지 CSIDL에 대해 환경 변수를 찾을 수있는 기능이없는 이유입니다.

관련 문제