2017-02-23 2 views
1

을 파일에 추가합니다. "image.png"는 발생하지 않습니다.의 SaveFileDialog 의외로 의외로</strong>가 확장 .BMP를 추가하고 속성 파일 이름을 통해 "<strong>image.mgm.BMP</strong>"를 반환 내가 System.Windows.Forms.SaveFileDialog <strong>대화 "image.mgm"파일 이름을 선택하면 확장

여러 샘플 :

  • image.bmp ==> image.bmp
  • 의 image.png ==>의 image.png
  • image.mgm ==>image.mgm.BMP
  • image.MGM ==> image.MGM

가 어떻게 예상치 못한 (나를 위해) 동작을 해결할 수 있습니까? https://github.com/constructor-igor/TechSugar/tree/master/WinForm/FileSaveDialogIssue/FileSaveDialogIssue

UPD : 추가 사실 : 샘플의

소스 GitHub의에서 찾을 수 있습니다 내가 키를 추가 할 때 "HKEY_CLASSES_ROOT.mgm는"레지스트리에 "파일 대화 상자"정지의는 ".BMP"을 추가 파일 마스크를 정의 할 때 비 대문자를 사용해야

 public Form1() 
    { 
     InitializeComponent(); 
     this.saveFileDialog.AddExtension = false; 
    } 

    private void btnOpenFile_Click(object sender, EventArgs e) 
    { 
     saveFileDialog.Title = @"Save calculated image"; 
     saveFileDialog.FileName = "noname.tiff"; 
     saveFileDialog.Filter = @"My Files(*.BMP;*.MGM;*.PNG)|*.BMP;*.MGM;*.PNG|All files (*.*)|*.*"; 
     if (saveFileDialog.ShowDialog(this) == DialogResult.OK) 
     { 
      MessageBox.Show(String.Format("File name {0}", saveFileDialog.FileName)); 
     } 
    } 
+0

대화 상자에서 "모든 파일"필터를 선택 했습니까? 그렇지 않은 경우 : 저장 버튼을 누르기 전에 시도하십시오. – Sylence

+0

"모든 파일"필터에 문제가 없지만 "내 파일"필터의 문제점을 이해하지 못합니다. – constructor

+0

아 ... .mgm이 "내 파일"필터의 일부라는 것을 알지 못했습니다. "bmp"및 "png"(소문자)가 작동하는지 확인 하시겠습니까? – Sylence

답변

0

을 .mgm하는

saveFileDialog.Filter = @"My Files(*.BMP;*.MGM;*.PNG)|*.bmp;*.mgm;*.png|All files (*.*)|*.*"; 

이 "1.mgm"또는 그러나 "1.MGM"


중 하나와 함께 작동합니다, "1.mGm"와 "1.MgM"작동하지 않습니다는 "추가함으로써 해결 될 수있다 * .mGm "마스크 (이 경우 하나의 경우 만 수정).

하지만 여전히 "1.Mgm"에 문제가 있습니다. 한숨.

"*.mgm;*.mGm;*.Mgm;*.mgM;" 
+0

괜찮 았어, 동의하고, 다른 작업을 순찰 할 수는 있지만 문제를 이해하고 싶다. 대화 상자에서 알 수없는 확장자에 대해 필터의 첫 번째 확장자를 추가합니다. "1.exe"를 선택하면 ".BMP"가 추가되지 않지만 "1.exec"를 선택하면 – constructor

+0

이 추가됩니다. 무엇이 잘못되었는지, 왜 여전히 확장이 추가되는지는 명시 적으로 무시됩니다. 'AddExtension = false '. – Sinatr

+0

[설정 속성] (https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/FileDialog.cs,bd498fa26976958b) 및 [해당 값 확인] (https : // referencesource .microsoft.com/# System.Windows.Forms/winforms/Managed/System/WinForms/FileDialog.cs, 7aeec959d11b6f08)이 나에게 잘 보이지만 ** 아무 것도 ** 파일 이름에 추가하면 안됩니다. – Sinatr

관련 문제