2014-03-06 2 views
-3

C#의 Savefiledialog를 사용하여 특정 디렉토리에 파일을 저장하는 방법. 경로 사용자는 savefile 대화 상자가 열리면 디렉토리를 변경하면 안됩니다.C# savefiledialog 특정 디렉토리에 고정 하시겠습니까?

+0

SaveFileDialog 컨트롤은 사용자가 경로를 선택하고 특정 파일 형식을 표시 할 수 있도록하기위한 것입니다. 그리고 실제 "저장"방법을 수행하지 않습니다. 나는 당신이 그것을 오용하고 있다고 생각합니다. – etaiso

답변

1

직접적인 방법은 없습니다 (예 : KeepSameFolder=True과 같은 속성).
유일한 옵션은 FileOK 이벤트에 대한 이벤트 처리기를 작성하고 원하는 폴더가 아닌 폴더에 저장 버튼의 클릭을 취소하는 것입니다. 의 SaveFileDialog를 닫 doesnt't 이벤트를 취소하고 사용자가

// declare at the global class level 
string allowedPath = @"c:\temp"; 


private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
{ 
    if (!Path.GetDirectoryName(openFileDialog1.FileName) == allowedPath) 
    { 
     MessageBox.Show("You should save your file in or a sub folder of: " + allowedPath); 
     e.Cancel = true; 
    }    
} 

편집의 오류 고칠 수
: 당신이 당신의 기본 경로의 하위 폴더 당신이해야 다음 선택이 끝난 할 수 있도록 허용 할 경우,
Mr Hofman의 의견에 따라 위의 설명에서 말했듯이, 그러나

string userChoice = Path.GetDirectoryName(openFileDialog1.FileName); 
    if (!userChoice.StartsWith(allowedPath)) 
    { 
     MessageBox.Show("You should save your file in the folder: " + allowedPath); 
     e.Cancel = true; 
    }    

처럼 뭔가 이벤트 핸들러 내부에 체크를 변경, 나는의 SaveFileDialog를 사용하는 사용자가 그/그녀가 파일이 아닌 저장하고자하는 경우에는 옵션이 없을 때 생각 좋은 선택. 폴더가 미리 정의 된 경우 파일 이름 만 묻고 코드에서 전체 파일 이름을 만드는 재사용 가능한 InputForm을 준비하면됩니다.

+1

감사합니다. 나는이 글이 중복 된 질문 위에 뭔가를 추가한다고 생각한다. –