'Path.Combine'问题

kor*_*wan 1 c# winforms

考虑:

private void cmdOpenPDF_DoubleClick(object sender, EventArgs e)
{
    string path1 = @"Z:\Google Docs\Documents";
    string path2 = docIDTextBox.Text;
    string path3 = ".pdf";
    Path.Combine(path1,path2,path3);
    System.Diagnostics.Process.Start(Path.Combine(path1, path2, path3));
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用上面的代码打开Z:驱动器上的PDF文件,这是一个虚拟驱动器.

当我尝试这个时,我得到以下内容:

win32异常未处理:

该系统找不到指定的文件

我不知道这意味着什么或我的代码有什么问题= /.路径有效,我可以在不使用文本框的情况下打开它.

SLa*_*aks 17

Path.Combine用于将多个文件夹组合到一个路径中.
因此,您的代码会创建路径Z:\Google Docs\Documents\something\.pdf,而不是您想要的路径.

您应该通过调用Path.ChangeExtension(如果要从文本框中删除任何扩展名)或简单地连接字符串来添加扩展名.

  • `Path.ChangeExtension` 正是我所寻找的,并且看起来更干净、更简单。 (3认同)

小智 7

如果path2只是没有扩展名的文件名,您可以使用:

Path.Combine(path1, path2 + path3)
Run Code Online (Sandbox Code Playgroud)