2010-07-20 4 views
0

다음과 같이 루트 프로젝트의 일부인 폴더에 파일을 저장하려는 간단한 .NET 콘솔 응용 프로그램을 만듭니다 (SolutionName.ProjectName\TestData\). TestData 폴더에 test.xml을 넣고 싶습니다. 그러나 내 XDocument을 저장하면 SolutionName.ProjectName\bin\x86\Debug Console\test.xml에 저장됩니다.출력 디렉토리가 아닌 프로젝트 디렉토리에 파일 저장/검색

프로젝트 디렉토리의 하위 폴더에 파일을 저장하거나 검색하려면 어떻게해야합니까?

답변

2

콘솔 응용 프로그램은 일단 컴파일되면 더 이상 Visual Studio 솔루션과 관련이 없습니다.

Public Sub Main(args as String()) 

    ' don't forget validation: handle situation where no or invalid arguments supplied 

    Dim outputFile = Path.Combine(args(0), "TestData", "test.xml") 

End Sub 

지금 당신과 같이 응용 프로그램을 실행할 수 있습니다 : 가장 좋은 방법은 아마도 단순히 명령 줄 인수로 응용 프로그램에 출력 경로를 '공급'하는 것입니다

myapp.exe Path\To\SolutionFolder 
0

당신은 당신의 EXE에 디렉토리 상대를 얻을 수있는 System.IO 네임 스페이스를 사용할 수 있습니다

var exeDirectory = Application.StartupPath; 
var exeDirectoryInfo = new DirectoryInfo(exeDirectory); 
var projectDirectoryInfo = exeDirectoryInfo.Parent.Parent.Parnet; // bin/x86/debug to project 

var dataPath = Path.Combine(projectDirectoryInfo.FullName, "TestData"); 

var finalFilename = Path.Combine(dataPath, "test.xml"); 
+0

내가 있다는 것에 대해 생각했다 경로, 나는 제안을 좋아하지만'Application.StartupPath'를 찾을 수 없습니다. 콘솔 응용 프로그램에서 어떻게 찾을 수 있습니까? –

2

나는 전에 본 적 있지만, 실제로 그것을 밖으로 시도 적이 없어요. 빠른 검색을했고,이 발굴 :

System.AppDomain.CurrentDomain.BaseDirectory 

줄 콘솔 응용 프로그램 대신 Application.StartupPath의 샷이.

+0

이것은 bin/debug에도 들어갑니다. – shahensha

관련 문제