Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用FileOpenDialog在C中打开文件_C#_.net_Visual Studio - Fatal编程技术网

C# 如何使用FileOpenDialog在C中打开文件

C# 如何使用FileOpenDialog在C中打开文件,c#,.net,visual-studio,C#,.net,Visual Studio,我试图通过按下一个按钮打开一个文件,更准确地说是一个标签,但它的工作原理是一样的 由于某种原因,当文件对话框打开,我选择文件并按open时,它不会打开文件,而是关闭文件对话框 private void selectLbl_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = "c:\\"; ofd.Filter = "Sc

我试图通过按下一个按钮打开一个文件,更准确地说是一个标签,但它的工作原理是一样的

由于某种原因,当文件对话框打开,我选择文件并按open时,它不会打开文件,而是关闭文件对话框

private void selectLbl_Click(object sender, EventArgs e)
{

    OpenFileDialog ofd = new OpenFileDialog();
    ofd.InitialDirectory = "c:\\";
    ofd.Filter = "Script files (*.au3)|*.au3";
    ofd.RestoreDirectory = true;
    ofd.Title = ("Select Your Helping Script");


    if (ofd.ShowDialog() == DialogResult.OK)
    {
        ofd.OpenFile(); //Not sure if there is supposed to be more here
    }
}
正在以字节流的形式返回文件的内容,如所述。如果要按所述方式打开文件,请使用

if (ofd.ShowDialog() == DialogResult.OK)
{
  System.Diagnostics.Process.Start(ofd.FileName);
}
因此,您选择的文件从关联的应用程序开始

正在以字节流的形式返回文件的内容,如所述。如果要按所述方式打开文件,请使用

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

因此,您选择的文件从关联的应用程序开始。

OpenFileDialog不是打开文件的对话框。它仅通过一个对话框与操作员进行通信,如果程序需要知道打开哪个文件,通常会显示该对话框。因此,它只是一个对话框,而不是一个文件开启器

如果用户按“确定”或“取消”,您可以决定要执行的操作:

private void selectLbl_click(object sender, ...)
{
    using (OpenFileDialog ofd = new OpenFileDialog())
    {
        ofd.InitialDirectory = "c:\\";
        ofd.Filter = "Script files (*.au3)|*.au3";
        ofd.RestoreDirectory = true;
        ofd.Title = ("Select Your Helping Script");

        var dlgResult = ofd.ShowDialog(this);
        if (dlgResult == DialogResult.OK)
        {    // operator pressed OK, get the filename:
             string fullFileName = ofd.FileName;
             ProcessFile(fullFileName);
        }
    }
}


if (ofd.ShowDialog() == DialogResult.OK)
{
    ofd.OpenFile(); //Not sure if there is supposed to be more here
}

OpenFileDialog不是打开文件的对话框。它仅通过一个对话框与操作员进行通信,如果程序需要知道打开哪个文件,通常会显示该对话框。因此,它只是一个对话框,而不是一个文件开启器

如果用户按“确定”或“取消”,您可以决定要执行的操作:

private void selectLbl_click(object sender, ...)
{
    using (OpenFileDialog ofd = new OpenFileDialog())
    {
        ofd.InitialDirectory = "c:\\";
        ofd.Filter = "Script files (*.au3)|*.au3";
        ofd.RestoreDirectory = true;
        ofd.Title = ("Select Your Helping Script");

        var dlgResult = ofd.ShowDialog(this);
        if (dlgResult == DialogResult.OK)
        {    // operator pressed OK, get the filename:
             string fullFileName = ofd.FileName;
             ProcessFile(fullFileName);
        }
    }
}


if (ofd.ShowDialog() == DialogResult.OK)
{
    ofd.OpenFile(); //Not sure if there is supposed to be more here
}
将用户选择的文件作为流打开,您可以使用该流从文件中读取

您对该流所做的取决于您试图实现的目标。例如,您可以读取和输出所有行:

if (ofd.ShowDialog() == DialogResult.OK)
{
    using (TextReader reader = new StreamReader(ofd.OpenFile()))
    {
        string line;
        while((line = t.ReadLine()) != null)
            Console.WriteLine(line);
    }
}
或者,如果是xml文件,则可以将其解析为xml:

if (ofd.ShowDialog() == DialogResult.OK)
{
    using(XmlTextReader t = new XmlTextReader(ofd.OpenFile()))
    {
        while (t.Read())
            Console.WriteLine($"{t.Name}: {t.Value}");
    }
}
将用户选择的文件作为流打开,您可以使用该流从文件中读取

您对该流所做的取决于您试图实现的目标。例如,您可以读取和输出所有行:

if (ofd.ShowDialog() == DialogResult.OK)
{
    using (TextReader reader = new StreamReader(ofd.OpenFile()))
    {
        string line;
        while((line = t.ReadLine()) != null)
            Console.WriteLine(line);
    }
}
或者,如果是xml文件,则可以将其解析为xml:

if (ofd.ShowDialog() == DialogResult.OK)
{
    using(XmlTextReader t = new XmlTextReader(ofd.OpenFile()))
    {
        while (t.Read())
            Console.WriteLine($"{t.Name}: {t.Value}");
    }
}

对因为它会返回文件的路径—然后由您决定如何处理它;返回一个流,以允许程序读取文件,而不是打开文件本身,以便用户查看在选择文件后您希望发生什么?是。。因为它会返回文件的路径—然后由您决定如何处理它;返回一个流,以允许程序读取文件,而不是打开文件本身,以便用户看到在您选择文件后会发生什么?OpenFileDialog不是打开文件的对话框。这不是真的,OpenFile确实打开了文件,但返回了一个打开的文件流。OpenFileDialog不是打开文件的对话框。这不是真的,OpenFile确实打开了文件,但返回了一个打开的文件流。