C#의 Savefiledialog를 사용하여 특정 디렉토리에 파일을 저장하는 방법. 경로 사용자는 savefile 대화 상자가 열리면 디렉토리를 변경하면 안됩니다.C# savefiledialog 특정 디렉토리에 고정 하시겠습니까?
-3
A
답변
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
감사합니다. 나는이 글이 중복 된 질문 위에 뭔가를 추가한다고 생각한다. –
SaveFileDialog 컨트롤은 사용자가 경로를 선택하고 특정 파일 형식을 표시 할 수 있도록하기위한 것입니다. 그리고 실제 "저장"방법을 수행하지 않습니다. 나는 당신이 그것을 오용하고 있다고 생각합니다. – etaiso