当我尝试运行它时,我每次都得到相同的错误,告诉我没有找到该文件,即使它显然在该文件夹中。你有什么办法让我解决这个问题吗?
谢谢。
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);
}发布于 2015-04-15 07:11:13
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);
}发布于 2015-04-15 07:11:34
您将file.Name放在列表框中,但这不包括完整路径。
看起来你正在尝试用你的Path.GetDirectoryName(file.Name);做一些事情,然而,这个函数返回一个字符串,你只是把它扔掉了。
Process.Start需要完整的路径,否则它将在当前目录(可能是您的bin文件夹)中查找。
因此,简单的解决方法是使用file.FullPath而不是file.Path。
但是,这将导致完整路径显示在列表框中。如果你不想这样做,如果所有的文件都在同一个文件夹中,DLeh的answer就可以工作。
https://stackoverflow.com/questions/29638884
复制相似问题