【问题标题】:visual studio 2012 opendialog stuck on default directoryvisual studio 2012 opendialog 卡在默认目录
【发布时间】:2013-03-26 15:01:57
【问题描述】:

我正在 Visual Studio Ultimate 2012 上编写基于 Windows 窗体的应用程序。我放入了一个 opendialog 以打开和读取文件。这是代码:-

private void button1_Click(object sender, System.EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.InitialDirectory = "c:\\" ;
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
    try
    {
        if ((myStream = openFileDialog1.OpenFile()) != null)
        {
            using (myStream)
            {
                // Insert code to read the stream here.
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
    }
}

}

但是每次我尝试运行它时,当我从浏览器窗口中选择一个文件时,它会显示一个 filenotfound 异常,因为它在默认目录中查找文件(位于 Documents/VisualStudio/Projects/WindowsFormApplication/bin /debug/openFileDialog1),不在我指定的目录中。请帮忙!!

【问题讨论】:

    标签: visual-studio openfiledialog


    【解决方案1】:

    问题出在下面一行

    openFileDialog1.RestoreDirectory = true;
    

    一旦对话框关闭,这会导致当前目录重置为原始目录。看来OpenFile 方法正在使用相对路径,因此试图打开对话框开始的文件,而不是结束的文件。

    尝试删除 RestoreDirectory 设置并在使用完文件后手动重置路径

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2012-08-27
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      相关资源
      最近更新 更多