0

因此,当我使用 openfiledialog 导航到文件时,我试图打开一个文本文件。这是我的代码:

        string path;
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            System.IO.StreamReader sr = new
               System.IO.StreamReader(openFileDialog1.FileName);
            path = sr.ReadToEnd();
            sr.Close();
        }

它不会打开,这是我得到的错误:i.imgur.com/0eVWFAJ.png

4

2 回答 2

2

我想您可能想使用默认应用程序打开文件。在这种情况下,试试这个:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    System.Diagnostics.Process.Start(openFileDialog1.FileName);
}

openFileDialog1.FileName 包含完整路径的字符串。

如果您不想打开它,而是将所选文件的内容加载到另一个字符串中,请尝试:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    var fileContents = System.IO.File.ReadAllText(openFileDialog1.FileName);
    ...
    // your code to work with the string here...
}
于 2013-10-22T01:13:08.603 回答
0

如果您只想在新窗口中打开文件,您应该使用Diagnostics.Process

就像@Baldric 显示的那样,如果你想保存文件名。

string path = "";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    path = openFileDialog1.FileName;
    System.Diagnostics.Process.Start(path);
}

我在您的代码中注意到的另一件事。你想返回文件名,但你使用

path = sr.ReadToEnd();

文件中的文本是否包含文件的路径?

于 2013-10-22T01:36:15.843 回答