: SaveFileDialog 구성 요소를 사용하여 파일 시스템을 검색하고 저장할 파일을 선택할 수 있습니다.
SaveFileDialog 속성
- Title: 파일 대화 상자 제목을 가져오거나 설정합니다.
- CreatePrompt: 존재하지 않는 파일을 지정할 때 파일을 새로 만들 것인지 사용자에게 묻는 메시지가 대화 상자에 표시되는지 여부를 나타내는 값을 가져오거나 설정합니다.
- DefaultExt:기본 확장명을 가져오거나 설정합니다.
- InitialDirectory:파일 대화 상자가 표시하는 초기 디렉터리를 가져오거나 설정합니다.
- Filter:대화 상자에서 "파일 형식으로 저장" 또는 "파일 형식" 상자에 표시되는 선택 옵션을 결정하는 현재 파일 이름 필터 문자열을 가져오거나 설정합니다.
Filter 속성) https://learn.microsoft.com/ko-kr/dotnet/api/microsoft.win32.filedialog.filter?view=windowsdesktop-8.0
SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "파일 대화상자 제목"; dlg.CreatePrompt = false; dlg.FileName = "파일이름"; dlg.DefaultExt = "pdf"; dlg.InitialDirectory = "c:\\"; dlg.Filter = "Pdf Files|*.pdf";
: 새 파일을 만들고 지정된 바이트 배열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있는 경우 잘리고 덮어씁니다.
byte[] byteBase64 = Convert.FromBase64String(pdfData); File.WriteAllBytes(dlg.FileName, byteBase64);
- Convert.FromBase64String
: base-64 숫자의 이진 데이터를 해당하는 8비트 부호 없는 정수 배열로 인코딩하는 방법으로 지정된 문자열을 변환합니다.- WriteAllBytes
: 전자서식 데이터를 byte 형식으로 변환하여 새파일을 만든다.
ex) 전체코드
SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "파일 대화상자 제목"; dlg.CreatePrompt = false; dlg.FileName = "파일이름"; dlg.DefaultExt = "pdf"; dlg.InitialDirectory = "c:\\"; dlg.Filter = "Pdf Files|*.pdf"; if (dlg.ShowDialog() == DialogResult.OK) { byte[] byteBase64 = Convert.FromBase64String(pdfData); File.WriteAllBytes(dlg.FileName, byteBase64); System.Diagnostics.Process.Start(dlg.FileName); }
참조 :
https://learn.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-save-files-using-the-savefiledialog-component?view=netframeworkdesktop-4.8
https://learn.microsoft.com/ko-kr/dotnet/api/system.convert.frombase64string?view=net-7.0