C# 打开列表框中选定的pdf文件
我在列表框2中有所有目录(2014、2012)、每个选定文件夹的文件(.pdf) 我通过这个代码得到目录C# 打开列表框中选定的pdf文件,c#,winforms,listbox,C#,Winforms,Listbox,我在列表框2中有所有目录(2014、2012)、每个选定文件夹的文件(.pdf) 我通过这个代码得到目录 if (FBD.ShowDialog() == DialogResult.OK) { listBox1.Items.Clear(); DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories(); foreach (DirectoryInfo diri in diri_
if (FBD.ShowDialog() == DialogResult.OK)
{
listBox1.Items.Clear();
DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories();
foreach (DirectoryInfo diri in diri_info)
{
listBox1.Items.Add(diri);
}
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex >= 0)
{
DirectoryInfo dirictory_choisis = (DirectoryInfo)listBox1.SelectedItem;
FileInfo[] files = dirictory_choisis.GetFiles();
listBox2.Items.Clear();
foreach (FileInfo file in files)
{
listBox2.Items.Add(file);
}
}
else
{
MessageBox.Show("selectioner un dossier");
}
}
我通过这个代码获取文件
if (FBD.ShowDialog() == DialogResult.OK)
{
listBox1.Items.Clear();
DirectoryInfo[] diri_info = newDirectoryInfo(FBD.SelectedPath).GetDirectories();
foreach (DirectoryInfo diri in diri_info)
{
listBox1.Items.Add(diri);
}
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex >= 0)
{
DirectoryInfo dirictory_choisis = (DirectoryInfo)listBox1.SelectedItem;
FileInfo[] files = dirictory_choisis.GetFiles();
listBox2.Items.Clear();
foreach (FileInfo file in files)
{
listBox2.Items.Add(file);
}
}
else
{
MessageBox.Show("selectioner un dossier");
}
}
现在如何打开所选文件(.pdf)
我使用此代码但不起作用(抛出未找到的异常文件)
代码中存在语法错误:“newDirectoryInfo” 顺便说一下,file.Name只返回名称(不包括路径)。应将该行替换为:
Process.Start(file.FullName);
因此,listBox2_单击应该如下所示:
private void listBox2_Click(object sender, EventArgs e)
{
FileInfo file = (FileInfo)listBox2.SelectedItem;
Process.Start(file.FullName);
}
我无法识别它(newDirectoryinfo),当我使用file.fullname时,它会生成一个表达式(不能将“system.string”类型对象强制转换为“system.io.fileinfo”)(newDirectoryinfo)行应该是:DirectoryInfo[]diri_info=newDirectoryinfo(FBD.SelectedPath).GetDirectories();(在“new”和“DirectoryInfo”之间添加空格。如果“Process.Start(file.Name)”没有任何语法错误,那么我的代码应该可以正常工作。因为“file.Name”和“file.FullName”都可以返回字符串。我已将我的答案编辑为包含listBox2_Click。您可能需要再次检查它。这是修复后的完整代码:非常感谢您的帮助。它现在运行良好!!@先生,不客气。另外,如果您可以选择此作为接受答案,那将非常好。非常感谢!