在 C# WinForms 中打开外部文件

Opening outside files in C# WinForms

所以基本上我想要完成的是能够 select 显示列表中的文件并打开该文件。现在,我在 CheckBoxList 中设置了它,该列表显示存在于 selected 文件夹中的 .docx、.mov 和 .txt 文件。问题是我无法打开文件。我见过大多数人建议-

Process.Start(filename);

但问题在于它需要一个特定的文件名,而我正试图从一个变量中提取该名称。有什么想法吗?
这是我当前的代码 -

private void Form1_Load(object sender, EventArgs e)
    {
        const string path = @"C:\Users\Haxelle\Documents\Journal";
        List<string> extensions = new List<string> { "DOCX", "MOV", "TXT" };

        string[] files = GetFilesWithExtensions(path, extensions);
        ckbEntry.Items.AddRange(files);
    }

    private string[] GetFilesWithExtensions(string path, List<string> extensions)
    {
        string[] allFilesInFolder = Directory.GetFiles(path);
        return allFilesInFolder.Where(f => extensions.Contains(f.ToUpper().Split('.').Last())).ToArray();
    }

    private void btnOpen_Click(object sender, EventArgs e)
    {
        CheckedListBox.CheckedItemCollection selectedFiles = ckbEntry.CheckedItems;


    }

正在尝试打开 btnOpen_Click

中的文件

看来您所缺少的只是遍历选定的文件名并打开它们。由于 CheckedItemCollection.Item 被键入为 object,您将需要转换项目,这可以使用 LINQ 的 Cast 函数来完成。

private void btnOpen_Click(object sender, EventArgs e)
{
    CheckedListBox.CheckedItemCollection selectedFiles = ckbEntry.CheckedItems;
    foreach (var filename in selectedFiles.Cast<string>()) {
        Process.Start(filename);
    }
}