2010-12-04 3 views
21

MSDN에서이 속성에 대해 읽었지만 여전히 그 기능이 무엇인지 이해하지 못합니다.FileDialog.RestoreDirectory 속성은 실제로 무엇을합니까?

가져 대화 상자를 닫기 전에 현재 디렉토리를 복원 여부를 를 나타내는 값을 가져 오거나 설정합니다.

정확히 무엇을 의미합니까? 현재 디렉토리의 '복원'은 실제로 무엇을합니까? 도와 주셔서 감사합니다.

답변

27

IIRC는 윈도우 XP에서 당신은 SaveFileDialog (A OpenFileDialog 또는 Open) 파일이 저장 (또는 열) 디렉토리에 Save를 누르면 새로운 현재 작업 디렉토리 (Environment.CurrentDirectory의 하나)로 설정됩니다.

FileDialog.RestoreDirectory = true을 설정하면 FileDialog을 닫으면 원래 작업 디렉터리가 복원됩니다.

Windows Vista/7에서는 동작이 항상 FileDialog.RestoreDirectory = true (예 : false로 설정 한 경우에도 ...)입니다.

+0

** 삭제 ** 감사합니다. 명성! –

+0

승리 8은 어떨까요? – linquize

+0

@linquize : 잘 모르겠지만 Windows 7과 같을 것입니다. – digEmAll

0

대화 상자를 사용할 때 디렉토리를 선택할 수 있으면 대화 상자의 다음 사용이 마지막으로 사용한 디렉토리에서 열립니다. 이 옵션을 사용하면 원래 디렉토리가 복원됩니다.

0

true로 설정된 경우 파일 대화 상자는 항상 기본 파일 경로 (InitialDirectory 속성)를 엽니 다.

5

원래 구현의 annoyig 버크는 선택을 한 후에 현재 응용 프로그램의 디렉토리이 해당 폴더로 변경되었습니다. 즉, 파일 작업이 응용 프로그램 폴더에 상대적이라고 예상하면 실패했습니다.

이것은 대화 상자를 사용하기 전에 현재 폴더를 캡처하고 이후에 복원하는 코드를 추가하는 것이 일반적으로 수행되었음을 의미합니다.

이것은 수정되었으므로 수행 할 수 있지만 기본값을 변경하면 동작이 변경되어 버려 질 수 있습니다. 따라서이 속성을 통해 수동으로 활성화해야합니다.

+0

'선택한 항목을 해당 폴더로 변경 한 현재 디렉토리가 무엇을 의미하는지 '에 대해 전혀 알지 못합니다. 이름을 바꿔 주시겠습니까? –

0

여기서는 WinForms FileDialog에 대해서만 말하고 있습니다. WPF FileDialog는 다른 동작을 할 수 있습니다.

Windows XP의 경우 대화 상자를 사용하는 동안 현재 디렉터리가 변경됩니다.

멀티 스레드 응용 프로그램의 경우이 사실을 알고 있어야합니다. 새 스레드에서 루프를 실행하여 다른 폴더로 전환 할 때 대화 상자 사용 중에 현재 디렉토리가 변경되었는지 확인하는 것이 쉽습니다.

Windows 7/mono의 경우 대화 상자를 사용하는 동안이나 사용 후에 현재 디렉토리가 변경되지 않습니다.

따라서 Win 7/mono : RestoreDirectory 속성은 필요하지 않습니다.

관련 문제