日期:2014-05-18  浏览次数:20897 次

net中的相对路径问题?在线等!!
开发环境.net   2003,项目文件夹FMTOOLS与数据文件夹dataFiles在同一个层次,项目文件夹FMTOOLS里包括FMTOOLS文件夹、FMTOOLS.ncb、FMTOOLS.sln,数据文件夹dataFiles里有SA.dat数据文件,我要在FMTOOLS.sln通过相对路径访问SA.dat,请问相对路径怎么写??
比如:FMTOOLS.sln中的程序fp   =   fopen( "相对路径\\SA ",   "rb "),这个相对路径怎么写?


------解决方案--------------------
Request.MapPath( "~ ")这个是取得应用程序路径,也就是你的相对路径。
------解决方案--------------------
关于在ASP.NET中物理路径和虚拟路径的取得
//Request.CurrentExecutionFilePath; 当前请求的虚拟路径 是这种格式:\虚拟目录名\admin\index.aspx
//Request.ApplicationPath //获取服务器上 ASP.NET 应用程序的虚拟应用程序根路径。\虚拟目录名(应用程序名)

以上都是虚拟目录中的文件路径,即是IIS中的路径。要得到真真的物理路径要在得到以上路径的基础上再加:
Server.MapPath(Request.ApplicationPath + "SPLConfig/ClassMap.xml ")//这样可能会有一个BUG

最好是这样
string m_ApplicationPath=Request.ApplicationPath;
if(this.m_ApplicationPath== " ")
this.m_ApplicationPath= "/ ";
if(!this.m_ApplicationPath.EndsWith( "/ "))
this.m_ApplicationPath += "/ "; //先判断一下 /
Server.MapPath(m_ApplicationPath+ "SPLConfig/ClassMap.xml ")

2005 地址Url 的新的访问方式
//this.Request.CurrentExecutionFilePath; //当前请求的虚拟忙碌中的路径
//this.Request.FilePath; //虚拟目录中的路径
//this.Request.PhysicalPath; //当前请求的物理路径
//this.Request.PhysicalApplicationPath;//应用程序的物理路径
//this.Request.Url.AbsoluteUri;//全部URL

Request.RawUrl 获得网址带变量 Request.UrlReferrer 获得网址不带变量

刷新本页面的方法 :
this.Response.Redirect(this.Request.Url.AbsoluteUri, true);

this.Response.Redirect(this.Request.Url.ToString());

定制方法的刷新

this.Response.Redirect(this.Request.CurrentExecutionFilePath + "?depid= " + this.hDepID.Value.ToString());



------解决方案--------------------
winform 就是System.Windows.Forms.Application.StartupPath
------解决方案--------------------
web我用fp = fopen( "~\\SA ", "rb "),~\就是相对源程序路径
------解决方案--------------------
不应该说是针对FMTOOLS.sln的相对路径,FMTOOLS.sln是个解决方案,在程序运行的时候是没有这个东西的,只有你的程序,所以只有相对你运行的exe程序的相对路径。

使用Application.StartupPath取你的exe运行的路径