WPF中的记事本,System.IO.File.ReadAllText

时间:2016-01-31 16:46:25

标签: c# wpf openfiledialog

打开文本文件时遇到麻烦...... 有了这段代码,在调用

后会有空的stringFromFile
    public string OpenTextFile ()
    {
        var stringFromFile = string.Empty;
        OpenFileDialog ofd = new OpenFileDialog();
        if (ofd.ShowDialog().ToString().Equals("OK"))
            stringFromFile = System.IO.File.ReadAllText(ofd.FileName);
        return stringFromFile;
    }

2 个答案:

答案 0 :(得分:3)

在WPF中OpenFileDialog.ShowDialog()返回Nullable<bool>,因此您应该更改代码,如下所示

public string OpenTextFile()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            Nullable<bool> res = ofd.ShowDialog();
            if(res == true)
            {
                using(StreamReader sr = new StreamReader(ofd.FileName))
                {
                  return sr.ReadToEnd();
                }
            }
            //Here message error
            throw new Exception("Something");
        }

答案 1 :(得分:3)

不需要调用ToString(),更糟糕的是,如果NullReferenceException的返回值为null,则会抛出ShowDialog(),因为ShowDialog()返回bool?({ {1}})正如另一个答案所指出的那样。

这是一个双线解决方案......

Nullable<bool>