2012-01-09 2 views
10

나는 파일을 저장하려는 경로를 선택하기 위해 SaveFileDialog을 사용합니다. 일부 폴더에 InitialDirectory을 설정했지만 저장 위치를 ​​해당 폴더 또는 해당 폴더의 하위 폴더로 제한하려고합니다. 이것이 가능한가?C# 특정 폴더의 SaveFileDialog

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder 
+0

죄송합니다,하지만 난 사건에 대해 생각할 수 없다. 저장 위치 또는 파일 저장 위치를 ​​사용자가 제어 할 수있게하십시오. 왜 이렇게하고 싶은지 설명해 주시겠습니까? – M0rgenstern

+1

번들의 파일을 편집하는 데 사용되는 편집기가 있습니다.이 편집기는 그대로 장치에 복사됩니다. 나는 사용자가 다른 폴더에 파일을 저장할 수있게하고 싶지 않다 - 그들은 결국 복사되지 않습니다 그리고 이것은 이상한 오류가 발생할 수 있습니다. – Felics

답변

9

아니요.

SaveFileDialog의 속성으로 직접 설정할 수 없습니다. 그러나 FileOk 이벤트를 사용하여 파일이 해당 디렉토리에 있는지 확인하고 그렇지 않으면 이벤트를 취소하여 시도 할 수 있습니다!

dialog.FileOk += 
    delegate (object sender, CancelEventArgs e) 
    { 
     if (dialog.FileName is in wrong directory) 
     { 
      e.Cancel = true; 
     } 
    }; 

앞서 언급했듯이 다음 최상의 옵션은 자신 만의 Dialog를 만드는 것입니다!

표시 처음에 사용자를 방지하는 등의

같은 좋은하지 파일 선택 후 오류,하지만 코드를 많이하지 않습니다 마음에 와서

+0

사용자가 다른 폴더에서 파일을 선택하면 취소하지 않으려 고합니다. 다른 폴더를 선택하게하지 않으려 고합니다. – Felics

+1

선택을 취소 만하면 대화 상자가 취소되지 않습니다. – Kolky

+0

이것은 매우 유용한 답변이었습니다. 감사합니다. – MikeMalter

0

일부 솔루션입니다 매우 간단합니다.

은 자신의 파일 선택 화면 구축

사용자가에 익숙한 것도 같은 모양을 만들기 위해 매우 고통스러운. 많은 코드가 필요합니다.

0

내가 생각할 수있는 것은 프로그래밍과 관련이 없으므로 주제가 다를 수 있으며 어려울 수 있습니다.

응용 프로그램을 설치하는 동안 응용 프로그램 만 Windows 용 특정 사용자를 만들어야합니다.

앱을 시작할 수있는 것보다 많습니다. 그 사용자는 App을 사용합니다. 매니페스트 파일.

그런 다음 특정 사용자 권한이 루트 폴더에만 쓰도록 할 수 있습니다.이 방법으로 OS가이를 제어 할 것입니다.

추신 :이 솔루션을 사용하면 비용이 많이 들지만 작동하지 않을지는 생각하지 않습니다. 이 유용 할시기를

경례

관련 문제