나는 데스크톱 애플 리케이션과 asp.net 웹 사이트에서 사용됩니다 assmebly있다.어떻게 둘 다 웹/Windows 응용 프로그램에서 C#에서 상대 경로를 확인할 수 있습니다 #
두 경우 모두 상대 경로 (로컬 파일이 아니라 URL)를 처리해야합니다.
이 방법을 어떻게 구현할 수 있습니까? 데스크탑 환경에 대한
/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
~/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
d:\wwwroot\mywebsite\folder\file.ext => d:\wwwroot\mywebsite\folder\file.ext
: (c:\program files\myprogram\bin\
이의 경로입니다 웹 envronment에서
string ResolvePath(string path);
는 ID가 (
d:\wwwroot\mywebsite
이 폴더에서 점은 IIS되는 경우) 방법이처럼 행동 할 것으로 예상 한 .exe)
/folder/file.ext => c:\program files\myprogram\bin\folder\file.ext
c:\program files\myprogram\bin\folder\file.ext => c:\program files\myprogram\bin\folder\file.ext
는 차라리 어떤 상태에서의 실행에 따라 다른 IPathResolver
를 주입하지 않는 게 좋을.
내가 어떤 환경에 있는지 어떻게 알 수 있습니까? 그러면 상대 경로를 해결하기 위해 각 경우에해야 할 일은 무엇입니까?
감사합니다 존의 코멘트에서 언급 한 바와 같이
무엇에 대한 상대 경로? 어셈블리에서 사용하는 파일입니까? 어셈블리와 함께 배포됩니까? 더 나은 방법이있을 수 있으므로 성취하려는 것을 말하고 싶을 수 있습니다. –
웹 환경에서 iis 웹 사이트의 루트 디렉토리 (위 예제의 d : \ wwwroot \ mywebsite)와 관련됩니다. Windows 데스크톱 응용 프로그램으로 실행할 때 .exe가있는 dir (위의 예제에서 c : \ program files \ myprogram \ bin \). –