如何打开列表框中显示的文件?

时间:2013-04-10 23:27:28

标签: c# file-io listbox

我已将所有启动程序添加到列表框中。 当我选择项目并单击按钮时,如何打开文件?

列表框代码:

private void readfiles()
{
    string startfolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

    var files = Directory.GetFiles(startfolder).Where(name => !name.EndsWith(".ini"));

    foreach (string file in files)
    {
        startupinfo.Items.Add(System.IO.Path.GetFileName(file));
    }
}

4 个答案:

答案 0 :(得分:2)

我不知道您尝试打开的文件类型,但这是您获取所选项目的方式。

Dictionary<string, string> startupinfoDict = new Dictionary<string, string>();
    private void readfiles()
    {
        string startfolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

        var files = Directory.GetFiles(startfolder).Where(name => !name.EndsWith(".ini"));

        foreach (string file in files)
        {
            startupinfo.Items.Add(Path.GetFileNameWithoutExtension(file));
            startupinfoDict.Add(Path.GetFileNameWithoutExtension(file), file);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem != null)
        {
            string s = listBox1.SelectedItem.ToString();

            if (startupinfoDict.ContainsKey(s))
            {
                Process.Start(startupinfoDict[s]);
            }
        }
    }

答案 1 :(得分:1)

获取当前选定的列表框项并假设应用程序已耦合到文件(扩展名使用):

Process.Start(fileName);

答案 2 :(得分:0)

您可以使用列表框的SelectedValue属性获取所选项目。

您可以使用Process.Start打开文件。

答案 3 :(得分:0)

您将启动一个新流程,声明要在按钮单击处理程序中执行/打开文件的路径:

Process.Start(@" <path to file> ");

如果列表框中的选定值是文件路径,则:

Process.Start(<name of list box>.SelectedValue);

编辑:

按如下方式更改foreach循环:

foreach (string file in files)
{
    startupinfo.Items.Add(System.IO.Path.GetFullPath(file) + @"\" + System.IO.Path.GetFileName(file));
}