在asp.net中使用c#的相对路径打开Word文档

时间:2011-05-06 12:52:05

标签: c# asp.net file-io ms-word

首先,我将解释项目结构:

    • 模板
      • 运动
        • Sport.doc
  • Opendoc.aspx
    • Opendoc.aspx.cs

现在问题。 在Opendoc.aspx.cs中我试图打开Sport.doc但是当我使用相对路径时这不起作用。只有当我像c://Sport.doc那样对其进行硬编码。

点击该页面上的按钮后,我会转到这个方法:

protected void btnCreateWordBulletin_Click(object sender, EventArgs e)
{
    string path = VirtualPathUtility.ToAbsolute("~/Sport/Sport.doc");
    string Savepath = VirtualPathUtility.ToAbsolute("~/Sport/SportEvent.doc");
    CreateWordDocument(path, Savepath );
}

protected void CreateWordDocument(object fileName, object saveAs)
{
    //Set Missing Value parameter - used to represent
    //a missing value when calling methods through interop
    object missing = System.Reflection.Missing.Value;

    //Setup the Word.App class
    Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
    Microsoft.Office.Interop.Word.Document aDoc = null;
    // Check to see that file exists
    if (System.IO.File.Exists((string)fileName))
    {... Activating doc etc...}}

但是System.IO.File.exists似乎没有找到该文档。

我尝试使用.//Sport/sport.doc,../Sport.doc,.//Template/Sport/sport.doc,..// Template / Sport.doc。

2 个答案:

答案 0 :(得分:2)

尝试

HttpApplication.Server.MapPath("/Solution/Templates/Sport/Sport.doc");

谢谢! 如果它不起作用,请评论。

答案 1 :(得分:0)

肯定是../Solution/Templates/Sport/Sport.doc

编辑:实际上,它只是/Solution/Templates/Sport/Sport.doc如果aspx文件与解决方案文件夹位于同一文件夹中。

底线是,您需要参考解决方案文件夹。