使用 Process.Start 打开 pdf 文件
Opening pdf files using Process.Start
我正在尝试使用 C# Process.Start()
在 Adobe reader 中打开 PDF 文件。
当我提供一个没有空格的路径时,它工作正常,但包含空格的路径和 pdf 文件无法打开。
这是我的代码:
Button btn = (Button)sender;
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "AcroRd32";
string s = btn.Tag.ToString();
//btn.Tag Contains the full file path
info.Arguments = s;
Process.Start(info);
如果它是 C:\Users\Manish\Documents\ms_Essential_.NET_4.5.pdf
它工作正常但如果它是 F:\Tutorials\C#\Foundational\Microsoft Visual C# 2012 Step By Step V413HAV.pdf
Adobe Reader 给出一个错误说 there was an error in opening the document file can't be found
.
我已经在 SO 中通读了许多与此主题相关的问题,但它不起作用。因为我不知道如何在我的字符串 s
.
中应用 @
前缀
有什么解决办法吗?
尝试用引号括起参数:
info.Arguments = "\"" + s + "\"";
您应该引用参数列表中提供的路径。这将导致它将路径视为单个参数而不是多个 space 分隔的参数:
info.Arguments = "\"" + s + "\"";
只是一个小技巧,在客户端上设置了一个默认的 PDF reader:如果进程,只需使用文件名 FileName
。通常你不关心使用哪个程序,所以这个解决方案就可以了:
Process.Start(pdfFileName);
这也不需要特殊引用,因此它可以立即解决您的问题。
在字符串值前使用字符 @ 应该有效:
var path = @"F:\Tutorials\C#\Foundational\Microsoft Visual C# 2012 Step By Step V413HAV.pdf";
我正在尝试使用 C# Process.Start()
在 Adobe reader 中打开 PDF 文件。
当我提供一个没有空格的路径时,它工作正常,但包含空格的路径和 pdf 文件无法打开。
这是我的代码:
Button btn = (Button)sender;
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "AcroRd32";
string s = btn.Tag.ToString();
//btn.Tag Contains the full file path
info.Arguments = s;
Process.Start(info);
如果它是 C:\Users\Manish\Documents\ms_Essential_.NET_4.5.pdf
它工作正常但如果它是 F:\Tutorials\C#\Foundational\Microsoft Visual C# 2012 Step By Step V413HAV.pdf
Adobe Reader 给出一个错误说 there was an error in opening the document file can't be found
.
我已经在 SO 中通读了许多与此主题相关的问题,但它不起作用。因为我不知道如何在我的字符串 s
.
@
前缀
有什么解决办法吗?
尝试用引号括起参数:
info.Arguments = "\"" + s + "\"";
您应该引用参数列表中提供的路径。这将导致它将路径视为单个参数而不是多个 space 分隔的参数:
info.Arguments = "\"" + s + "\"";
只是一个小技巧,在客户端上设置了一个默认的 PDF reader:如果进程,只需使用文件名 FileName
。通常你不关心使用哪个程序,所以这个解决方案就可以了:
Process.Start(pdfFileName);
这也不需要特殊引用,因此它可以立即解决您的问题。
在字符串值前使用字符 @ 应该有效:
var path = @"F:\Tutorials\C#\Foundational\Microsoft Visual C# 2012 Step By Step V413HAV.pdf";