首先,我将解释项目结构:
现在问题。 在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。
答案 0 :(得分:2)
尝试
HttpApplication.Server.MapPath("/Solution/Templates/Sport/Sport.doc");
谢谢! 如果它不起作用,请评论。
答案 1 :(得分:0)
肯定是../Solution/Templates/Sport/Sport.doc
?
编辑:实际上,它只是/Solution/Templates/Sport/Sport.doc
如果aspx文件与解决方案文件夹位于同一文件夹中。
底线是,您需要参考解决方案文件夹。