<

C# 개발/폴더 선택 창 > C#

본문 바로가기

C#

[C#] C# 개발/폴더 선택 창

익명
2022-09-22 12:32 185 0

본문

C# 개발/폴더 선택 창

둘러보기로 가기검색하러 가기

개요

폴더 선택

FolderBrowserDialog 이용

기본으로 내장되어있는 FolderBrowserDialog 사용법이다.

private string FolderBrowser()
{
	using (FolderBrowserDialog dlg = new FolderBrowserDialog())
	{
		dlg.ShowNewFolderButton = true;
		dlg.RootFolder = Environment.SpecialFolder.MyComputer;
		if(dlg.ShowDialog() == DialogResult.OK)
		{
			//string path = dlg.SelectedPath;
			return dlg.SelectedPath;
		}
	}
	return "";
}


CommonOpenFileDialog 이용

CommonOpenFileDialog

기본형태인 FolderBrowserDialog 가 기능이 부실해서, 대안으로 이용되는 방법이다. 파일열기 와 비슷한 형태로 폴더를 선택할 때 이용된다.

마이크로소프트 에서 만들었으며 현재는 더이상 관리되지 않음. 'Free to use' 였으므로 'Aybe' 라는 사람이 Github 에 올리고 관리하는 듯 하다. 이것을 NuGet 으로 다운받을 수 있다. 이런 연유로 패키지명이 Microsoft.WindowsAPICodePack 이다.


1. 셋팅 방법-1 (예전 방법) 다음을 다운로드 받고, 2개의 어셈블리 추가.

2. 셋팅방법-2 (NuGet 이용)

  • 도구 > NuGet 패키지 관리자 > 솔루션용 NuGet 패키지 관리
  • WindowsAPICodePack-Shell 를 선택, 설치.


사용

var dialog = new CommonOpenFileDialog();
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
    this.Path = dialog.FileName;
}


배포할 때는 다음을 포함한다.

  • Microsoft.WindowsAPICodePack.dll
  • Microsoft.WindowsAPICodePack.Shell.dll
  • Microsoft.WindowsAPICodePack.Shell.xml
  • Microsoft.WindowsAPICodePack.xml

폴더 열기 (탐색기 열기)

탐색기 열기

System.Diagnostics.Process.Start("explorer.exe", path);


파일 저장 다이알로그 SaveFileDialog

public bool DoSaveFileDialog(Image image)
{
	string filePath = "";
	using (SaveFileDialog dlg = new SaveFileDialog())
	{
		dlg.Title = "이미지 저장";//창위에 뜨는 타이틀
		dlg.FileName = GenerateBaseFilename();
		dlg.Filter = "PNG 이미지 (*.png)|*.png|JPG 이미지 (*.jpg)|*.jpg|BMP 이미지 (*.bmp)|*.bmp|GIF 이미지 (*.gif)|*.gif|모든 파일 (*.*)|*.*";//확장자 선택
		dlg.DefaultExt = "png";
		dlg.InitialDirectory = "";

		//showDialog의 리턴값이 OK 일 때
		if (dlg.ShowDialog() == DialogResult.OK)
		{
			filePath = dlg.FileName;
		} else
		{
			// 취소 한 경우
			return false;
		}
	}
	
	if (filePath.Trim().Length > 1)
	{
		MessageBox.Show("저장 되었습니다.");
		return true;
	}
	else
	{ 
		// 경로를 잘못 지정한 경우
		MessageBox.Show("저장경로를 설정해주세요");
	}
	return false;
}

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색