C#/예제 소스

[C#/.Net] 현재 프로그램 실행 경로 가져오기 (상대 경로 설정)

Fly_Mir 2015. 11. 11. 11:40
Mir의 운영환경
본체DeskTop
O SWindows XP Professional Ver 2002 Service Pack 2
ApplicationVisualStudio2010
.NetFramework Ver 3.5

System.IO.Directory.GetCurrentDirectory()와
Application.StartupPath()의 차이점을 알아보고 실행 경로를 가져오자.

현재 경로를 가져오는 방법으로 크게 3가지 메소드가 있습니다.

1.System.Windows.Forms.Application.StartupPath

- 윈폼 프로그램 실행시 가능한 방법

- 기타 조건에 상관없이 무조건 현재 프로그램의 실행위치를 가져온다.

(Application.ExecutablePath == 실행파일명까지 가져온다.)

(System.Windows.Forms.Application은 실행되는 프로그램의 전반적인 컨트롤과 정보를 가져올수 있다.)

2.System.IO.Directory.GetCurrentDirectory()

- 윈폼이 아닌 다른환경에서도 가능한 방법

- Windows Registry에 등록시 (설치프로그램 실행시) "C:\Windows\System32" 경로가 나옴

(System.IO.Directory는 디렉토리에 대한 컨트롤을 할수 있다.)

3. System.Environment.CurrentDirectory

- 2와 동일

(System.Environment는 현재 환경 및 플랫폼에 대한 컨트롤과 정보를 가져올수 있다.)


윈폼 프로그램일경우 Application.StartupPath명령어를 사용하는게 제일 좋은거 같습니다.

다른 명령어를 사용할때에는 설치 전,후를 잘 생각해서 사용하시길 추천합니다.

(설치시 설치경로를 레지스트에서 불러와 절대경로로 사용하면 될듯합니다.)

    using System.Windows.Forms;
 
    namespace t2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                //프로그램 실행시 Data 폴더 확인 및 없을경우 Data 폴더 생성
                System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Application.StartupPath + @"\Data");
                if (!di.Exists) { di.Create(); }
            }
        }
    }