C#SaveFileDialog在特定文件夹中

我使用SaveFileDialog选择我要保存文件的路径。 我将InitialDirectory设置为某个文件夹,但我想将保存位置限制为该文件夹或该文件夹的子文件夹。 这可能吗?

 SaveFileDialog dialog = new SaveFileDialog(); dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder 

不,这是不可能的。

您无法在SaveFileDialog上将其直接设置为Property。 但您可以尝试使用FileOk事件来validation文件是否在该目录中,否则取消该事件!

 dialog.FileOk += delegate (object sender, CancelEventArgs e) { if (dialog.FileName is in wrong directory) { e.Cancel = true; } }; 

如前所述,下一个最佳选择是构建自己的Dialog!

想到的一些解决方案是:

选择文件后显示错误

不像在一开始就阻止用户那么好,但它不需要很多代码并且非常简单。

建立自己的文件选择屏幕

看起来像用户习惯的任何东西都非常痛苦。 需要大量代码。

我能想到的可能是偏离主题的,因为它与编程没有多大关系,而且可能很难。

当您正在安装应用程序时,您应该在Windows上为您的应用程序创建一个特定用户。

比你可以开始你的应用程序。 作为该用户使用App。 清单文件。

之后,您可以将特定用户权限授予仅在根文件夹中写入,这是操作系统将如何控制它。

PS:我不认为这个解决方案是否会自行支付,但它可能会有效。

敬礼