当我尝试运行此操作时,每次告诉我该文件未找到时,我都会收到相同的错误,即使它显然位于该文件夹中。关于如何解决这个问题的任何想法?
谢谢。
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);
}
答案 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工作。