2012-05-13 17 views
0

我想打開標準窗口並保存文件對話框,但是,我使用它的特定應用程序是遠程文件系統(基本上,我很想不知何故爲SaveFileDialog提供一個IFileSystem接口,並讓它神奇地改變它提供給我們的文件)。有誰知道這些支持這種功能的對話框的完整實現嗎?有沒有辦法用標準的C#/ windows對話框來做到這一點?C#打開/ SaveFileDialog與不同的文件系統

如果不是,我將自己實現對話框。即使它們不支持這個功能,我仍然會喜歡任何資源來實現這些對話框,只是我可以將它們分開並自己添加該功能。

謝謝!

+0

難道你不能得到這個由shell識別的其他文件系統,以便文件對話框可以免費使用嗎? –

回答

2

唯一的選擇是實現您自己的Shell命名空間擴展。它可能被註冊爲「我的電腦」的孩子,所以它看起來像另一個驅動器。 請注意:這是一項單調乏味的工作,由於.NET框架限制(< 4.0),它必須用C/C++編寫。

Here就是這個例子。

+0

我認爲4.0以前的限制只是你無法加載不同版本的CLR,所以你仍然可以編寫一個託管擴展,但是它被卡在與任何CLR可能已經在瀏覽器中運行一起運行? –

+0

這正是我談論的限制。 – dzendras

+0

這看起來幾乎正是我想要的。儘管理想情況下我無法瀏覽其他任何內容,但我會看看是否有辦法隱藏其他所有內容,或只是拒絕不在該位置的文件。感謝您的鏈接! – Trevor

1

這些類是圍繞調用本機Windows shell API函數的非常薄的包裝器。 XP和更早版本的GetOpenFileName(),用於Vista和更高版本的IFileOpenDialog COM接口。如果您在資源管理器中看不到文件系統,那麼這些包裝器根本不會有用。

相關問題