SaveFileDialog

S:)·2024년 5월 29일

C#

목록 보기
2/3

전자서식 파일을 byte로 변환해 로컬로 저장하는 방법

SaveFileDialog 객체를 이용해 파일 저장하기

: SaveFileDialog 구성 요소를 사용하여 파일 시스템을 검색하고 저장할 파일을 선택할 수 있습니다.

SaveFileDialog 속성

  • Title: 파일 대화 상자 제목을 가져오거나 설정합니다.
  • CreatePrompt: 존재하지 않는 파일을 지정할 때 파일을 새로 만들 것인지 사용자에게 묻는 메시지가 대화 상자에 표시되는지 여부를 나타내는 값을 가져오거나 설정합니다.
  • DefaultExt:기본 확장명을 가져오거나 설정합니다.
  • InitialDirectory:파일 대화 상자가 표시하는 초기 디렉터리를 가져오거나 설정합니다.
  • Filter:대화 상자에서 "파일 형식으로 저장" 또는 "파일 형식" 상자에 표시되는 선택 옵션을 결정하는 현재 파일 이름 필터 문자열을 가져오거나 설정합니다.
    Filter 속성) https://learn.microsoft.com/ko-kr/dotnet/api/microsoft.win32.filedialog.filter?view=windowsdesktop-8.0

1. SaveFileDialog 객체 생성

 SaveFileDialog dlg = new SaveFileDialog();
 dlg.Title = "파일 대화상자 제목";
 dlg.CreatePrompt = false;
 dlg.FileName = "파일이름";
 dlg.DefaultExt = "pdf";
 dlg.InitialDirectory = "c:\\";               
 dlg.Filter = "Pdf Files|*.pdf";   

2. File.WriteAllBytes(String, Byte[])

: 새 파일을 만들고 지정된 바이트 배열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있는 경우 잘리고 덮어씁니다.

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

profile
일단 저장

0개의 댓글