打開時出現「文件未找到」我試圖將docx文件轉換爲pdf。我使用的是來自stackoverflow的代碼,但經過修改後允許動態選擇要打開的文件(而不是硬編碼的值)。當我運行它時,我在Open()方法上得到一個異常 - 找不到文件。我使用fileupload控件選擇文件,所以我知道該文件在那裏。這是怎麼回事?當使用microsoft.office.interop.word.application.documents.open()
這是我的代碼:
using System;
using System.IO;
using Microsoft.Office.Interop.Word;
using OpenXmlPowerTools;
namespace DocxToPdf
{
public partial class WebForm1 : System.Web.UI.Page
{
public Microsoft.Office.Interop.Word.Document wordDoc;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void UploadButton_Click(object sender, EventArgs e)
{
if (DocxFileUpload.HasFile)
{
string docxFile = DocxFileUpload.PostedFile.FileName;
FileInfo fiFile = new FileInfo(docxFile);
if (Util.IsWordprocessingML(fiFile.Extension))
{
Guid pdfFileGuid = Guid.NewGuid();
string pdfFileLoc = string.Format(@"c:\windows\temp\{0}.pdf", pdfFileGuid.ToString());
Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
wordDoc = appWord.Documents.Open(docxFile);
wordDoc.ExportAsFixedFormat(pdfFileLoc, WdExportFormat.wdExportFormatPDF);
MsgLabel.Text = "File converted to PDF";
}
else
{
MsgLabel.Text = "Not a WordProcessingML document.";
}
}
else
{
MsgLabel.Text = "You have not specified a file.";
}
}
}
}
在發生該錯誤 「wordDoc = appWord.Documents.Open(docxFile);」線。
fileupload控件FileName屬性只有文件名,而不是完全限定的路徑。我明白爲什麼我會收到「找不到文件」的錯誤 - 這是因爲該文件沒有完全合格的路徑。我對這個小組的問題是,我如何獲得完全合格的路徑和文件名,以便我可以打開它?我運行了一個調試會話並檢查了fileupload控件和FileInfo控件的所有屬性,但它們沒有。 FileInfo控件的「FullPath」屬性設置爲「c:\ Program Files(x86)\ IIS Express \ myfile.docx」,但這不是文件所在的位置。
下面是關於錯誤的更多信息:DocxToPdf.dll中的異常System.Runtime.InteropServices.COMException(對不起,我們無法找到您的文件,它可能被移動,重命名或刪除了嗎?C:\ Windows ... \ myfile.docx ...
我已經在這周圍一派,但至今沒有運氣。請幫助!謝謝。
問題在於如何設置DocxFileUpload.PostedFile.FileName。沒有這個代碼,不能真正幫助 – bnem