从列表框C#打开文件

时间:2015-04-14 23:07:17

标签: c# winforms listbox

当我尝试运行此操作时,每次告诉我该文件未找到时,我都会收到相同的错误,即使它显然位于该文件夹中。关于如何解决这个问题的任何想法?

谢谢。

public TaskViewer()
    {
        InitializeComponent();

        DirectoryInfo dInfo = new DirectoryInfo(@"C:\\To-Do-List");

        FileInfo[] Files = dInfo.GetFiles("*.txt");

        foreach (FileInfo file in Files)
        {
            listBox1.Items.Add(file.Name);
            Path.GetDirectoryName(file.Name);
        }

    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string file = listBox1.SelectedItem.ToString();
        Process.Start(file);
    }

2 个答案:

答案 0 :(得分:3)

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    string file = listBox1.SelectedItem.ToString();
    string fullFileName = Path.Combine(@"C:\To-Do-List", file);
    Process.Start(fullFileName);
}

答案 1 :(得分:2)

您将file.Name放在列表框中,但不包括完整路径。

看起来你正试图用你的Path.GetDirectoryName(file.Name);做一些事情,但是,该函数会返回一个字符串而你只是把它扔掉了。

Process.Start需要完整路径,否则它会查看当前目录(可能是您的bin文件夹)。

因此,简单的解决方法是使用file.FullPath代替file.Path

然而,这将导致完整路径出现在列表框中。如果你不想这样,如果所有文件都在同一个文件夹中,那么answer可以通过DLeh工作。