자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

C#

IT HUB를 찾아주셔서 감사합니다.

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

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 3,833회 작성일 22-09-22 12:32

본문

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;


}

댓글목록

등록된 댓글이 없습니다.