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

본문 바로가기

C#

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

회원사진
하나를하더라도최선을
2022-09-22 12:32 1,156 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

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