2012-05-13 2 views
0

표준 윈도우를 열고 파일 대화 상자를 저장하고 싶습니다. 그러나 그것을 사용하고있는 특정 응용 프로그램은 원격 파일 시스템입니다 (기본적으로, 나는 어쨌든 단지 SaveFileDialog에 IFileSystem 인터페이스를 제공하고 제공하는 파일을 마술처럼 바꾸도록하십시오.) 누구든지이 기능을 지원하는 대화 상자의 완전한 구현을 알고 있습니까? 표준 C#/windows 대화 상자로 할 수있는 방법이 있습니까?C# 다른 파일 시스템으로 열기/SaveFileDialog

그렇지 않다면 직접 대화 상자를 구현할 것입니다. 비록이 기능을 지원하지 않더라도 대화 상자를 구현하는 데 필요한 모든 리소스를 여전히 사랑할 것입니다. 그렇기 때문에이 두 기능을 직접 뜯어서 추가 할 수 있습니다.

감사합니다.

+0

파일 대화 상자가 무료로 작동하도록 셸에서이 다른 파일 시스템을 인식 할 수 없습니까? –

답변

2

유일한 선택은 고유 한 쉘 네임 스페이스 확장을 구현하는 것입니다. 그것은 "내 컴퓨터"자식으로 등록되어 다른 드라이브처럼 보일 수 있습니다. 주의 : 이것은 지루한 작업이며 .NET Framework의 제한 (< 4.0)으로 인해 C/C++로 작성되어야합니다.

Here이 예입니다.

+0

제한 4.0 이전 버전에서는 CLR의 여러 버전을 나란히로드 할 수 없기 때문에 관리되는 확장을 쓸 수는 있지만 CLR이 이미 탐색기에서 실행 중일 때 실행 중임을 나타냅니다. ? –

+0

그게 정확히 내가 말한 한계입니다. – dzendras

+0

거의 정확히 내가 원하는 것 같습니다. 이상적으로는 다른 것을 탐색 할 수는 없지만, 다른 모든 것을 숨기거나 그 위치가 아닌 파일 만 거부하는 방법이 있는지 알 수 있습니다. 링크 주셔서 감사합니다! – Trevor

1

이 클래스는 기본 Windows 셸 API 함수를 호출하는 매우 얇은 래퍼입니다. XP 및 그 이전 버전의 GetOpenFileName(), Vista 이상의 IFileOpenDialog COM 인터페이스. 익스플로러에서 파일 시스템을 볼 수 없다면 랩퍼는 전혀 유용하지 않을 것입니다.