2012-08-04 1 views
0

내 자원이 문자열을 넣어 노력하고있어 :있는 Environment.CurrentDirectory

Environment.CurrentDirectory + \\Server Files\\ 

을하지만 문자열을로드 할 때마다있는 Environment.CurrentDirectory 부분 대신 현재 디렉토리 경로의 일반 텍스트로 표시됩니다 . :(

예 :..

Console.WriteLine(Resources.ServerFilesLocation); // Doesn't give me a path, but just plain text. 
+2

당신은 약간이를 통해 생각해야합니다. 앱이 설치된 위치와 같이 런타임 환경에 크게 의존하는 * 값을 리소스 문자열에 고정하면 그 값이 정확하다고 어떻게 예상합니까? 이것은 작동하지 않습니다. –

+0

Awh, 이렇게하면 작동하지 않을 것입니다 :(? –

+1

리소스의 문자열은 그냥 문자열 일 뿐이며 컴파일되지 않고 해석되지 않습니다. 리소스 관리자가 그대로로드하고 반환합니다. 원하는 형식의 문자열을 리소스에 넣고 런타임에 String.Format 형식을 지정하면됩니다. –

답변

2

모든 런타임 환경 값은 자원의 문자열로 저장할 수 없습니다 당신이 할 일은 사이에 레이어를 만들 것입니다 뭔가 같은 :

static class ResourceManager 
{ 
    public static string ServerFilesLocation { 
     get { 
      return String.Format(Resources.ServerFilesDirectory, Environment.CurrentDirectory); 
      // ServerFilesDirectory = "{0}\\Server Files\\" or something similar 
     } 
    } 
} 

그리고이 좋아 사용 Console.WriteLine(ResourceManager.ServerFilesLocation);

+0

완벽하게 작동합니다. 감사합니다.). –