保存文件对话框 - 路径不起作用
Posted
技术标签:
【中文标题】保存文件对话框 - 路径不起作用【英文标题】:Save file dialog - path not working 【发布时间】:2010-02-15 23:58:23 【问题描述】:App.config:
<add key="SaveDraftPath" value="C:\Drafts\"/>
C#:
var saveDraftPath = ConfigurationManager.AppSettings["SaveDraftPath"];
var sfDialog = new SaveFileDialog();
sfDialog.InitialDirectory = saveDraftPath;
sfDialog.FileName = "FILE";
由于某种原因,这不会像计划的那样在路径中打开文件浏览器,有人知道为什么或如何解决吗?
我已经试过了,还是不行:
var saveDraftPath = Path.GetFullPath(ConfigurationManager.AppSettings["SaveDraftPath"]);
MessageBox.Show("does directory exist : " + Directory.Exists(saveDraftPath));
var sfDialog = new SaveFileDialog();
sfDialog.InitialDirectory = saveDraftPath;
sfDialog.FileName = "FILE";
并且 Directory.Exists(saveDraftPath) 返回 true.. 嗯?!
编辑: 上面的代码对我有用一次。该代码适用于迄今为止已回答的每个人。但它仍然无法正常工作。所以我怀疑问题是某种本地/历史设置阻止它。有谁知道为什么会发生这种情况?
【问题讨论】:
这对我来说没问题。机器上肯定存在c:\drafts
目录吗?
确实如此。我对此进行了测试。它实际上工作了一次,然后当我在行中添加它的默认名称时它停止工作......嗯......
我实际上还有另一行可以打开它显然 var clickedOk = sfDialog.ShowDialog();
会不会是一些本地设置覆盖了代码?
【参考方案1】:
试试这个:
var path = Path.GetFullPath(ConfigurationManager.AppSettings["SaveDraftPath"])
也看看Path Class,有几个有用的methods
【讨论】:
【参考方案2】:这对我有用(从配置中获取正确的路径)
var saveDraftPath =
ConfigurationManager.AppSettings["SaveDraftPath"];
var sfDialog = new SaveFileDialog();
sfDialog.InitialDirectory = saveDraftPath;
sfDialog.FileName = "FILE";
if (sfDialog.ShowDialog() == DialogResult.OK)
//do stuff
查看更多http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx
【讨论】:
以上是关于保存文件对话框 - 路径不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 SaveFileDialog 保存为特定文件格式
Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )
Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )