2014-03-29 2 views

답변

2

다른 확장명의 파일을 상자에 입력하는 것을 방지 할 수 없습니다.

하지만 선택이 이루어진 후에는, 선택된 파일의 파일 확장자를 테스트 할 수 있습니다

FileDialog fd = new OpenFileDialog(); 
fd.Filter = "*.txt|*.txt"; 
fd.ShowDialog(); 

if (Path.GetExtension(fd.FileName).ToLower() != ".txt") 
    MessageBox.Show("Choose a text file!"); 
1

를 WPF 사용하면 랩 표준 Windows 공용 대화 상자 (기본적으로 일반 윈폼의 것을 사용해야 Win32API), 일반 Windows 대화 상자는 사용자가 임의의 파일 이름을 입력하거나 처음에 선택한 필터 외부의 확장자를 선택하지 못하도록하지는 않습니다. 왜냐하면 필터는 단지 사용자를위한 제안 일 뿐이지 무엇이든 시행하십시오.

내장 된 Windows 대화 상자로 할 수있는 대부분은 필터를 제공하는 것입니다. 사용자는 항상 아무것도 입력하거나 다른 필터를 선택하여 재정의 할 수 있습니다 (BTW,이 때문에 항상 ". "올바른 필터 이외에 필터).

왜 내가 미리 정의 된 확장자 밖에서 아무 것도 금지하고 싶은지 물어볼 수 있습니까? 확장 기능은 파일 이름의 일부분에 불과하다는 것을 기억하십시오. 내용의 표시기이지만 다른 내용을 포함하지 못하도록하는 어려운 규칙은 아닙니다. 사용자가 다른 확장명을 가진 파일을 선택하려는 경우 (예 : 확장자가 더 많은 텍스트 파일이 있거나 악의적 인 사용자가 .txt 파일에 불량 콘텐츠를 배치 할 수 있음)