簡體   English   中英

使用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應用@前綴。

任何想法如何解決這一問題?

只是一個小技巧,客戶端上設置了默認的PDF閱讀器:如果使用該過程,只需將文件名用作FileName 通常,您並不關心要使用哪個程序,因此此解決方案就可以了:

Process.Start(pdfFileName);

這也不需要特殊的報價,因此可以立即解決您的問題。

嘗試將引號引起來:

info.Arguments = "\"" + s + "\"";

在字符串值之前使用字符@應該起作用:

var path = @"F:\Tutorials\C#\Foundational\Microsoft Visual C# 2012 Step By Step V413HAV.pdf";

您應該使用參數列表中提供的路徑作為引號。 這將導致其將路徑視為單個參數,而不是多個以空格分隔的參數:

info.Arguments = "\"" + s + "\"";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM