C#Open / SaveFileDialog使用不同的文件系统

时间:2012-05-13 18:43:07

标签: c# winforms filesystems openfiledialog savefiledialog

我想打开标准窗口并保存文件对话框,但是,我使用它的特定应用程序是一个远程文件系统(基本上,我喜欢以某种方式为SaveFileDialog提供一个IFileSystem接口并拥有它神奇地改变我看到它提供的文件)。有谁知道支持此功能的那些对话框的完整实现?有没有办法用标准的C#/ windows对话框来做?

如果没有,我将自己实施对话框。我仍然喜欢这些对话框实现的任何资源,即使它们不支持这个功能,只是因此我可以将它们拆开并自己添加该功能。

谢谢!

2 个答案:

答案 0 :(得分:2)

唯一的选择是实现自己的Shell命名空间扩展。它可能被注册为“我的电脑”孩子,所以它看起来像另一个驱动器。 注意:这是一项繁琐的工作,由于.NET框架限制(< 4.0),它必须用C / C ++编写。

Here就是一个例子。

答案 1 :(得分:1)

这些类是对本机Windows shell api函数调用的非常薄的包装器。用于XP及更早版本的GetOpenFileName(),用于Vista及更高版本的IFileOpenDialog COM接口。如果您在资源管理器中看不到文件系统,则这些包装器根本不会有用。