본문 바로가기

IT/c#

[c#] 파일 입출력 할 때 없는 폴더 생성 후 파일을 저장해보자

이번에 알아볼 것은 파일 생성에 필요한 실행 프로그램의 경로와 폴더 생성에 관한 내용입니다.

 

파일 읽기, 쓰기를 할때 절대 경로가 아닌 상대 경로가 필요할때가 있습니다.

 

뭐 상관없이 절대경로로 C:\ 에 넣으면 좋겠지만 그렇지 않다면

 

현재 실행중인 실행파일을 보관하고있는 폴더에 있는 하위폴더 save 폴더에 넣고 싶다면 지금부터 설명할 방식을 사용합면 됩니다.

 

간단하게 


Ex) C:\myProject\myProgram.exe  


란 경로 가 있다고 합시다.

 

myProgram.exe의 위치에 따라 앞의 내용이 달라질 겁니다.

그때 사용할건 바로!!


string strPath = AppDomain.CurrentDomain.BaseDirectory; 


입니다.

딱 이 한줄로 모든게 해결됩니다.

 

그런데 문제는 전 그 하위 폴더인 save에 결과를 txt파일로 저장하고 싶습니다.

 

간단히 FileStream(strPath + @"\result.txt", FileMode.Append, FileAccess.Write); 하면 될까요?

 

당연히 안되니까 물어봤겠죠 ㅡㅡ;; ㅋㅋ

 

이 폴더가 현재 존재하는지 확인하고 생성하는게 필요합니다.



strPath = strPath + @"\save";

 

DirectoryInfo di = new DirectoryInfo(strPath);

if (di.Exists == false)

{

        di.Create();

}

 


짜잔!!  


이렇게 하면 내 실행파일이 어디에 저장되있건, 폴더가 있든없든 저장이 가능하게 됩니다.