C# 打开/保存文件对话框,使用不同的文件系统

本文关键字:文件系统 打开 保存文件 对话框 | 更新日期: 2023-09-27 18:34:12

我希望标准窗口打开并保存文件对话框,但是,我使用它的特定应用程序是远程文件系统(基本上,我很想以某种方式提供一个 IFileSystem 接口来保存文件对话框,并让它神奇地更改我提供的文件)。有谁知道支持此功能的那些对话框的完整实现?有什么方法可以使用标准的 C#/窗口对话框做到这一点吗?

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

谢谢!

C# 打开/保存文件对话框,使用不同的文件系统

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

下面是示例。

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