C# 打开列表框中选定的pdf文件

C# 打开列表框中选定的pdf文件,c#,winforms,listbox,C#,Winforms,Listbox,我在列表框2中有所有目录(2014、2012)、每个选定文件夹的文件(.pdf) 我通过这个代码得到目录 if (FBD.ShowDialog() == DialogResult.OK) { listBox1.Items.Clear(); DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories(); foreach (DirectoryInfo diri in diri_

我在列表框2中有所有目录(2014、2012)、每个选定文件夹的文件(.pdf)

我通过这个代码得到目录

if (FBD.ShowDialog() == DialogResult.OK)
{
    listBox1.Items.Clear();
    DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories();
    foreach (DirectoryInfo diri in diri_info)
    {
        listBox1.Items.Add(diri);
    }
private void button1_Click(object sender, EventArgs e)
{
    if (listBox1.SelectedIndex >= 0)
    {
        DirectoryInfo dirictory_choisis = (DirectoryInfo)listBox1.SelectedItem;
        FileInfo[] files = dirictory_choisis.GetFiles();
        listBox2.Items.Clear();
        foreach (FileInfo file in files)
        {
            listBox2.Items.Add(file);
        }
    }
    else
    {
        MessageBox.Show("selectioner un dossier");
    }

}
我通过这个代码获取文件

if (FBD.ShowDialog() == DialogResult.OK)
{
    listBox1.Items.Clear();
    DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories();
    foreach (DirectoryInfo diri in diri_info)
    {
        listBox1.Items.Add(diri);
    }
private void button1_Click(object sender, EventArgs e)
{
    if (listBox1.SelectedIndex >= 0)
    {
        DirectoryInfo dirictory_choisis = (DirectoryInfo)listBox1.SelectedItem;
        FileInfo[] files = dirictory_choisis.GetFiles();
        listBox2.Items.Clear();
        foreach (FileInfo file in files)
        {
            listBox2.Items.Add(file);
        }
    }
    else
    {
        MessageBox.Show("selectioner un dossier");
    }

}
现在如何打开所选文件(.pdf)

我使用此代码但不起作用(抛出未找到的异常文件)


代码中存在语法错误:“newDirectoryInfo”

顺便说一下,file.Name只返回名称(不包括路径)。应将该行替换为:

Process.Start(file.FullName);
因此,listBox2_单击应该如下所示:

private void listBox2_Click(object sender, EventArgs e)
    {
        FileInfo file = (FileInfo)listBox2.SelectedItem;
        Process.Start(file.FullName);
    }

我无法识别它(newDirectoryinfo),当我使用file.fullname时,它会生成一个表达式(不能将“system.string”类型对象强制转换为“system.io.fileinfo”)(newDirectoryinfo)行应该是:DirectoryInfo[]diri_info=newDirectoryinfo(FBD.SelectedPath).GetDirectories();(在“new”和“DirectoryInfo”之间添加空格。如果“Process.Start(file.Name)”没有任何语法错误,那么我的代码应该可以正常工作。因为“file.Name”和“file.FullName”都可以返回字符串。我已将我的答案编辑为包含listBox2_Click。您可能需要再次检查它。这是修复后的完整代码:非常感谢您的帮助。它现在运行良好!!@先生,不客气。另外,如果您可以选择此作为接受答案,那将非常好。非常感谢!