C# C# 개발/폴더 선택 창
페이지 정보
본문
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
- https://github.com/aybe/Windows-API-Code-Pack-1.1
- https://stackoverflow.com/questions/11624298/how-to-use-openfiledialog-to-select-a-folder
기본형태인 FolderBrowserDialog 가 기능이 부실해서, 대안으로 이용되는 방법이다. 파일열기 와 비슷한 형태로 폴더를 선택할 때 이용된다.
마이크로소프트 에서 만들었으며 현재는 더이상 관리되지 않음. 'Free to use' 였으므로 'Aybe' 라는 사람이 Github 에 올리고 관리하는 듯 하다. 이것을 NuGet 으로 다운받을 수 있다. 이런 연유로 패키지명이 Microsoft.WindowsAPICodePack 이다.
1. 셋팅 방법-1 (예전 방법) 다음을 다운로드 받고, 2개의 어셈블리 추가.
- Windows® API Code Pack for Microsoft® .NET Framework
- http://archive.msdn.microsoft.com/WindowsAPICodePack/
- 해당 어셈블리
- Microsoft.WindowsAPICodePack.dll
- Microsoft.WindowsAPICodePack.Shell.dll
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;
}
- 이전글[C#] DataGridView 홀수/짝수열 배경색 다르게 지정 22.09.30
- 다음글[C#] ToolStripTextBox에서 Enter 키를 누를 때 ContextMenuStrip 닫기 22.01.29
댓글목록
등록된 댓글이 없습니다.