首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表框C#打开文件

从列表框C#打开文件
EN

Stack Overflow用户
提问于 2015-04-15 07:07:17
回答 2查看 1.2K关注 0票数 0

当我尝试运行它时,我每次都得到相同的错误,告诉我没有找到该文件,即使它显然在该文件夹中。你有什么办法让我解决这个问题吗?

谢谢。

代码语言:javascript
复制
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);
    }
EN

回答 2

Stack Overflow用户

发布于 2015-04-15 07:11:13

代码语言:javascript
复制
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);
}
票数 3
EN

Stack Overflow用户

发布于 2015-04-15 07:11:34

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

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

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

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

但是,这将导致完整路径显示在列表框中。如果你不想这样做,如果所有的文件都在同一个文件夹中,DLeh的answer就可以工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29638884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档