2011-05-12 3 views
5

C#을 사용하고 있습니다. 내 프로젝트에서 xml 파일에 "file.xml"이라고 적혀있는 xml 폴더가 있습니다. 내 프로젝트에서 파일을 사용하고 싶습니다.C를 사용하는 상대 경로 #

xmlDoc.Load(@"..\xml\file.xml"); 

하지만 파일을 복용하지 않는 : 나는 그것을 위해 내가 같은 경로를 제공하고, 현재 프로젝트 자체에서 해당 파일을 먹고 싶어. 일부 "C :"경로가 표시됩니다. 어떻게이 파일을 프로젝트 자체에서 다시 검색 할 수 있습니까?

답변

6

솔루션 탐색기에서 파일에 Copy to Output Directory 속성을 설정하여 파일을 EXE가있는 폴더로 옮겨 놓아야합니다.

그런 다음이이 EXE 파일의 실제 위치를 사용에 관계없이 현재 디렉토리의 작동

xmlDoc.Load(Path.Combine(typeof(MyClass).Assembly, "file.xml")); 

를 작성할 수 있습니다.

편집 : ASP.Net에서, 당신은 (공개적으로 액세스 할 수 없습니다 있음) App_Data 폴더에 파일을 넣어해야, 다음 쓰기

xmlDoc.Load(Server.MapPath("~/App_Data/file.xml")); 
+0

를 내 경우에는이 방법이 작동하지 않습니다 SQL 데이터베이스 프로젝트입니다. –

2

당신은 Copy to Output Directory는 "새로운 경우 복사"로 설정한다 당신이 다음 사용할 수 있습니다 : 비주얼 스튜디오 프로젝트 파일을 포함하기 때문에

Path.Combine(Application.StartupPath, "file.xml"); 
+0

그것은 작동하지 않습니다. 그것은 "파일을 찾을 수 없습니다"예외를 제공하고 일부 "C : programfiles ....."경로를 보여줍니다. – mucchar

+0

Windows 응용 프로그램 또는 ASP.NET 응용 프로그램입니까? – jaywayco

+0

그것은 ASP 응용 프로그램입니다. – mucchar

0
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml") 
+1

'Location.ToString()'에 MyClass.exe가 포함되어 있기 때문에 작동하지 않습니다. –