c# savefiledialog 锁定到特定目录? [复制]
Posted
技术标签:
【中文标题】c# savefiledialog 锁定到特定目录? [复制]【英文标题】:c# savefiledialog lock to particular directory? [duplicate] 【发布时间】:2014-03-06 10:56:09 【问题描述】:如何在 c# 中使用 Savefiledialog 将文件保存到特定目录。打开保存文件对话框时,路径用户不应更改目录。
【问题讨论】:
SaveFileDialog 控件旨在让用户选择路径并显示特定的文件类型。请注意,它不会执行实际的“保存”方法。我认为你在滥用它。 【参考方案1】:没有直接的方法(例如KeepSameFolder=True
之类的属性)。
您唯一的选择是为FileOK 事件编写一个事件处理程序,如果该文件夹不是您喜欢的文件夹,则取消单击“保存”按钮。
取消事件不会关闭 SaveFileDialog,用户可以修复它的错误
// declare at the global class level
string allowedPath = @"c:\temp";
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
if (!Path.GetDirectoryName(openFileDialog1.FileName) == allowedPath )
MessageBox.Show("You should save your file in or a sub folder of: " + allowedPath);
e.Cancel = true;
编辑:在Mr Hofman 的评论之后,如果您允许选择基本路径的子文件夹,那么您应该将事件处理程序中的检查更改为类似
string userChoice = Path.GetDirectoryName(openFileDialog1.FileName);
if (!userChoice.StartsWith(allowedPath))
MessageBox.Show("You should save your file in the folder: " + allowedPath);
e.Cancel = true;
但是,正如上面的 cmets 所述,我认为当用户无法选择保存文件的位置时使用 SaveFileDialog 不是一个好的选择。如果文件夹是预定义的,那么只需准备一个可重用的 InputForm,它只要求提供文件名并在代码中构建您的完整文件名。
【讨论】:
谢谢。我认为这篇文章现在在重复问题之上添加了一些内容。以上是关于c# savefiledialog 锁定到特定目录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 SaveFileDialog 保存为特定文件格式
C# Open/SaveFileDialog 使用不同的文件系统