保存文件对话框 - 路径不起作用

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

【讨论】:

以上是关于保存文件对话框 - 路径不起作用的主要内容,如果未能解决你的问题,请参考以下文章

调用打开文件对话框后文件写入不起作用

iframe 文件上传在 IE 上不起作用

用户取消时保存对话框

在 C# 中使用 SaveFileDialog 保存为特定文件格式

Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )