【问题标题】:open pdf file selected in listbox打开列表框中选择的 pdf 文件
【发布时间】:2017-06-04 00:48:40
【问题描述】:

我有所有的目录(2014,2012),列表框2中每个选定文件夹(.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");
    }

}

现在如何打开选定的文件 (.pdf)?

我使用了这段代码,但没有工作(抛出一个没有找到的异常文件)

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

【问题讨论】:

    标签: c# winforms listbox


    【解决方案1】:

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

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

    Process.Start(file.FullName);
    

    所以 listBox2_Click 应该是这样的:

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

    【讨论】:

    • 我无法识别它 (newDirectoryinfo) ,当我使用 file.fullname 时,它​​会生成一个 exption(无法将“system.string”类型对象转换为“system.io.fileinfo”类型)
    • (newDirectoryinfo) 行应该是: DirectoryInfo[] diri_info = new DirectoryInfo(FBD.SelectedPath).GetDirectories(); (在“new”和“DirectoryInfo”之间添加空格。如果您的“Process.Start(file.Name)”没有任何语法错误,那么我的代码应该可以正常工作。因为“file.Name”和“file.Name”都可以正常工作。 FullName”返回字符串。我已经编辑了我的答案以包含 listBox2_Click。您可能需要再次检查它。这是修复后的完整代码:codepad.org/PpIbblj3
    • 非常感谢您的帮助。现在效果很好!!
    • @monsieur 不客气。另外,如果您可以选择此作为接受答案,那就太好了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2019-04-12
    相关资源
    最近更新 更多