2014-07-16 6 views
0

SaveFileDialog 및 필터 (예 : .tgz 파일)를 열고 싶습니다. 여기 내 코드는 다음과 같습니다.SaveFileDialog 필터는 .xlsx 링크를 보여줍니다?

string dummyFileName = "file.tgz"; 
string savePath = "fail"; 
SaveFileDialog sf = new SaveFileDialog(); 
//Feed dummy name to the save dialog 
sf.FileName = dummyFileName; 
sf.Filter = ".tar.gz|*.tgz"; 
if (sf.ShowDialog() == DialogResult.OK) 
{ 
    //Now here's our save folder 
    savePath = Path.GetFullPath(sf.FileName); 
} 
// then i check if savePath = "fail", in case the user abborted it, and return. 

필터가 작동합니다. 또한 .txt 또는 .exe로 변경했지만 눈치 챘을 것입니다. 내 데스크톱의 .xlsx 파일에 대한 링크가 있습니다. 실제 파일은 표시되지 않으며 Excel 파일의 링크 만 표시됩니다! 다른 사람이 그 사실을 알아 차리고 해결 방법을 찾았습니까?

문제는 나중에이 파일 이름을 사용하고 싶습니다. 사용자가 링크를 클릭하면 파일 이름이 변경됩니다.

+0

나는 그것을 본다. 어색한 Windows 동작은 Office가 설치하는 셸 확장과 관련이 있을지 모르지만 이는 단지 추측에 불과합니다. 당신이 할 수있는 일은 많지 않습니다. 사용자의 컴퓨터를 망칠 수 없습니다. 사용자가 잘못된 파일을 선택하지 못하도록하고 싶다면 반드시 필요한 파일 확장명을 다시 확인해야합니다. FileOk 이벤트의 이벤트 핸들러에서 그렇게 할 수 있습니다. –

+0

같은 문제가 있습니까? 어색해 ... 아니, 나는 그걸 망쳐 놓을 수 없어. 문제는 내 코드가이 경우 .tgz 또는 .xlsx 파일을 생성 할 것이므로 기존 파일을 덮어 쓸 것입니다. 이 모든 것을 막기 위해서 나는 그들을 전혀 보지 않으려합니다. 해결 방법은이를 방지하는 좋은 방법입니다. 감사합니다. –

답변

-1

당신이 대신 파일로 저장되는 확장자 필터의 대화 상자에 표시에 DefaultExt 속성을 설정 한 값 필터링 할 경우 Dialog :

string dummy = "file.tgz"; 
string path = ""; 
SaveFileDialog sf = new SaveFileDialog(); 
sf.FileName = dummy; 
sf.DefaultExt = ".tgz"; // <== This one. 
sf.Filter = "gzipped tar files (*.tgz)|*.tgz"; 
if (sf.ShowDialog() == true) 
{ 
    path = sf.FileName; 
} 

이이 파일에 표시되는 필터링합니다 귀하의 Dialog.

+0

답장을 보내 주셔서 감사하지만 도움이되지 않습니다. –