【相对路径】  
Request.ApplicationPath /src
Path.GetDirectoryName(HttpContext.Current.Request.RawUrl ) //src//Xiaoshe
Context.Request.Path /src/Xiaoshe/Xiaoshe_New.aspx
Context.Request.CurrentExecutionFilePath /src/Xiaoshe/Xiaoshe_New.aspx
Context.Request.FilePath /src/Xiaoshe/Xiaoshe_New.aspx
HttpContext.Current.Request.RawUrl  /src/Xiaoshe/Xiaoshe_New.aspx
HttpContext.Current.Request.Url http://localhost:1344/src/Xiaoshe/Xiaoshe_New.aspx
TemplateSourceDirectory /src/Controls
   
【绝对路径】  
Server.MapPath("./")  E://Wonsoft//Pro2//src//Xiaoshe//
Server.MapPath("")  E://Wonsoft//Pro2//src//Xiaoshe
Context.Request.PhysicalApplicationPath E://Wonsoft//Pro2//src//
Context.Request.PhysicalPath  E://Wonsoft//Pro2//src//Xiaoshe//Xiaoshe_New.aspx
MapPathSecure(TemplateSourceDirectory) E://Wonsoft//Pro2//src//Controls string
   
【其他】  
Control.ResolveClientUrl(string relativeUrl)  
Control.ResolveUrl(string relativeUrl)

/获取当前进程的完整路径,包含文件名(进程名)。 
string str = this.GetType().Assembly.Location; 
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) 
//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。 
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; 
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 
string str = System.Environment.CurrentDirectory; 
result: X:\xxx\xxx (.exe文件所在的目录) 
//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。 
string str = System.AppDomain.CurrentDomain.BaseDirectory; 
result: X:\xxx\xxx\ (.exe文件所在的目录+"\") 
//获取和设置包含该应用程序的目录的名称。 
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; 
result: X:\xxx\xxx\ (.exe文件所在的目录+"\") 
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。 
string str = System.Windows.Forms.Application.StartupPath; 
result: X:\xxx\xxx (.exe文件所在的目录) 
//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。 
string str = System.Windows.Forms.Application.ExecutablePath; 
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) 
//获取应用程序的当前工作目录(不可靠)。 
string str = System.IO.Directory.GetCurrentDirectory(); 
result: X:\xxx\xxx (.exe文件所在的目录) 
======================================================== 
.NET中三种获取当前路径的代码 
//Web编程 
HttpContext.Current.Server.MapPath("FileName") 
System.Web.HttpContext.Current.Request.Path 
//Windows编程 
System.Environment.CurrentDirectory 
//Mobile编程 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 
A.指定 客户端元素 资源的路径 
B.指定 服务器控件 资源的路径 
C.确定当前网站的物理文件路径 
============================ 
使用网站中的资源时,通常必须指定资源的路径。 
例如,您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。 
同样,Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。 
ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。 
A.指定 客户端元素 资源的路径 
------------------------------ 
许多情况下,页面中的元素或控件必须引用外部资源,如文件。 
ASP.NET 允许您通过各种方法引用外部资源。 
所选方法取决于使用客户端元素还是服务器控件。 
元素(不是页面中的服务器控件,而是客户端元素)以原样传递给浏览器。 
因此,从客户端元素中引用资源时,应根据 HTML 中 URL 的标准规则构造路径。 
可以使用完全限定(绝对)URL 路径,也可以使用各种类型的相对路径。 
例如,如果页面包含一个 img 标记,则可以使用以下路径之一设置其 src 属性: 
绝对 URL 路径: 
阅读代码编辑代码运行效果复制HTML代码保存代码 
如果引用其他位置(如外部网站)中的资源,则绝对 URL 路径非常有用。 
站点根目录相对路径, 
根据站点(不是应用程序)根目录进行解析。 
此示例路径假定 Images 文件夹存在于网站根目录下: 
阅读代码编辑代码运行效果复制HTML代码保存代码 
如果您的网站为 http://www.xxx.com,则路径将解析为以下形式: 
http://www.xxx.com/Images/SampleImage.jpg 
如果将跨应用程序的资源(如图像或客户端脚本文件) 
保留在网站根目录下的文件夹中,则站点根目录相对路径非常有用。 
根据当前页面路径解析的相对路径: 
阅读代码编辑代码运行效果复制HTML代码保存代码 
解析为当前页面路径对等的相对路径。 
阅读代码编辑代码运行效果复制HTML代码保存代码 
注意 
默认情况下,浏览器使用当前页面的 URL 作为基准解析相对路径。 
但是,您可以在页面中包含 HTML base 元素,以指定替代基路径。 
B.指定 服务器控件 资源的路径 
----------------------------- 
在引用资源的 ASP.NET 服务器控件中, 
可以使用绝对路径或相对路径,这一点与客户端元素一样。 
如果使用相对路径,则相对于页面、用户控件或包含该控件的主题的路径进行解析。 
例如,假设 Controls 文件夹中包含一个用户控件。 
该用户控件包含一个 Image Web 服务器控件, 
该服务器控件的 ImageUrl 属性设置为以下路径: 
Images/SampleImage.jpg 
该用户控件运行时,路径将解析为以下形式: 
/Controls/Images/SampleImage.jpg 
无论承载用户控件的页面位置如何,都是如此。 
服务器控件中的绝对和相对路径引用具有以下缺点: 
绝对路径在应用程序之间是不可移植的。 
如果移动绝对路径指向的应用程序,则链接将会中断。 
如果将资源或页面移动到不同的文件夹, 
可能很难维护采用客户端元素样式的相对路径。 
为克服这些缺点, 
ASP.NET 启用了 Web 应用程序根目录运算符 (~), 
在服务器控件中指定路径时,可以使用该运算符。 
ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。 
可以结合使用 ~ 运算符和文件夹来指定基于当前根目录的路径。 
下面的示例 
演示使用 Image 服务器控件时用于指定图像的根目录相对路径的 ~ 运算符: 
复制ASPX代码保存代码 
ImageUrl="~/Images/SampleImage.jpg" /> 
ImageUrl="~/Images/SampleImage.jpg" /> 
在该示例中, 
图像文件将从 Web 应用程序根目录下的 Images 文件夹中直接读取, 
无论该页面位于网站的什么位置。 
注意 
~ 运算符只能为服务器控件识别,并且位于服务器代码中。 
不能将 ~ 运算符用于客户端元素。 
可以在服务器控件中的任何与路径有关的属性中使用 ~ 运算符。 
注意 
在主控页中,资源的路径基于内容页的路径进行解析。 
C.确定当前网站的物理文件路径 
---------------------------- 
在应用程序中,您可能需要确定服务器上的文件或其他资源的路径。 
例如,如果应用程序以编程方式对文本文件进行读写操作, 
则必须为用于读取和写入的方法提供该文件的完整物理路径。 
将物理文件路径(如 C:\Website\MyApplication) 
硬编码到应用程序中并不是很好的做法, 
因为如果移动或部署应用程序,则路径会发生更改。 
但是, 
ASP.NET 为您提供了以编程方式获取应用程序中的任何物理文件路径的方法。 
然后,您可以使用基文件路径创建所需资源的完整路径。 
用于确定文件路径的两种最常用的 ASP.NET 功能是 
返回路径信息的 HttpRequest 对象的属性,以及 MapPath 方法。 
注意 
不应将物理文件路径发送到客户端, 
因为它们可能会被恶意用户用来获取有关您的应用程序的信息。 
根据请求属性确定路径 
下表列出了 HttpRequest 对象的属性, 
这些属性帮助您确定应用程序中的资源的路径。 
下面的示例假定使用以下 URL 来发出浏览器请求: 
http://www.xxx.com/MyApplication/MyPages/Default.aspx 
对于这些示例, 
术语“虚拟路径”是指跟在服务器标识符后面的请求 URL 的一部分, 
此时虚拟路径如下所示: 
/MyApplication/MyPages/Default.aspx 
此外,这些示例假定网站根目录的物理路径为以下形式: 
C:\inetpub\wwwroot\MyApplication\ 
最后,这些示例假定物理路径包含一个名为 MyPages 的文件夹。 
则相关属性及其返回值如下: 
ApplicationPath 
获取当前应用程序的根目录路径, 
无论在该应用程序中的什么位置请求该路径。 
对于此示例,该属性将返回以下内容: 

CurrentExecutionFilePath 
获取当前请求的虚拟路径。 
不同于 FilePath, 
差别在于如果请求已在服务器代码中被重定向, 
则 CurrentExecutionFilePath 就是正确的。 
对于此示例,该属性将返回以下内容: 
/MyApplication/MyPages/Default.aspx 
如果作为对 Transfer 或 Execute 进行调用的结果, 
您获取正在运行的代码中的属性,则路径将反映该代码的位置。 
FilePath 
获取当前请求的虚拟路径。 
对于此示例,该属性将返回以下内容: 
/MyApplication/MyPages/Default.aspx 
不同于 CurrentExecutionFilePath,FilePath 不反映服务器端转换。 
Path 
获取当前请求的虚拟路径。对于此示例,该属性将返回以下内容: 
/MyApplication/MyPages/default.aspx 
PhysicalApplicationPath 
获取当前正在执行的应用程序的根目录的物理文件系统路径。 
对于此示例,该属性将返回以下内容: 
C:\inetpub\wwwroot\ 
PhysicalPath 
获取与请求的 URL 对应的物理文件系统路径。 
对于此示例,该属性将返回以下内容: 
C:\inetpub\wwwroot\MyApplication\MyPages\default.aspx 
使用 MapPath 方法 
MapPath 方法返回传递给该方法的虚拟路径的完整物理路径。 
例如,以下代码返回网站根目录的文件路径: 
Visual Basic : 
复制VB.NET代码保存代码Dim rootPath As String = Server.MapPath("~") 
C# : 
复制C#代码保存代码String rootPath = Server.MapPath("~"); 
注意 
传递给 MapPath 方法的路径必须为应用程序相对路径,而不是绝对路径。

C#路径总结的更多相关文章

  1. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  2. Akka.net路径里的user

    因为经常买双色球,嫌每次对彩票号麻烦,于是休息的时候做了个双色球兑奖的小程序,做完了发现业务还挺复杂的,于是改DDD重做设计,拆分服务,各种折腾...,不过这和本随笔没多大关系,等差不多了再总结一下, ...

  3. java中servlet的各种路径

    1. web.xml中<url-pattern>路径,(叫它Servlet路径!) > 要么以“*”开关,要么为“/”开头 2. 转发和包含路径 > *****以“/”开头:相 ...

  4. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  5. 使用JavaScript为一张图片设置备选路径

    在做网页开发的时候,有时候希望给图片设置一个备选路径,即,当src属性对应的主路径加载失败的时候,图片可以马上切换到备选路径.这样,即使主路径失效了,显示备用路径也不会影响网页的正常体验. 注意到网页 ...

  6. iOS之开发中一些相关的路径以及获取路径的方法

    模拟器的位置: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs ...

  7. Android中访问sdcard路径的几种方式

    以前的Android(4.1之前的版本)中,SDcard路径通过"/sdcard"或者"/mnt/sdcard"来表示,而在JellyBean(安卓4.1)系统 ...

  8. 【每日一linux命令1】linux命令路径

    一.路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误 的执行或是找不到该命令.要知道设置的路径,可执行以下命令: echo $PATH 显示结果: 这时我们 ...

  9. hibernate-mapping-3.0.dtd;hibernate-configuration-3.0.dtd;hibernate.properties所在路径

    hibernate-mapping-3.0.dtd 所在路径:hibernate-release-5.2.5.Final\project\hibernate-core\src\main\resourc ...

  10. .NET全栈开发工程师学习路径

    PS:最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位 ...

随机推荐

  1. 原生js dom记忆的内容

    1.DOM基础getElementByIdgetElementByTagNamegetElementByName getElementsByClass querySelector querySelec ...

  2. AngularJS开发指南6:AngularJS表单详解

    表单控件(input, select, textarea )是用来获取用户输入的.表单则是一组有联系的表单控件的集合. 用户能通过表单和表单控件提供验证的服务,知道自己的输入是否合法.这样能让用户交互 ...

  3. php_curl模拟登录有验证码实例

    <?php/** * @author 追逐__something * @version $id */define('SCRIPT_ROOT',dirname(__FILE__).'/');$ac ...

  4. “耐撕”团队 2016.3.25 站立会议

    成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.cnblogs.com/charliePU/) ...

  5. 【C#】依赖于SharpZipLib的Zip压缩工具类

    上班第二天下班,课外作业,实现一个ZIP压缩的工具类.本来想用Package,但是写完了才发现不能解压其他工具压缩的zip包,比较麻烦,因此本工具类依赖了第三方的库(SharpZipLib  vers ...

  6. org.hibernate.PropertyValueException: not-null property references a null or transient value:

    org.hibernate.PropertyValueException: not-null property references a null or transient value: com.bj ...

  7. 【CodeForces 625A】Guest From the Past

    题 题意 一升奶可以花费a元,也可以话b元买然后获得c元,一开始有n元,求最多买多少升奶. 分析 贪心,如果b-c<a,且n≥b,那就买b元的,n先减去b再看看够买多少瓶,然后再+1瓶,余款再购 ...

  8. Android中实现自定义的拍照应用

    可以参考:http://www.android-doc.com/guide/topics/media/camera.html 一.添加相应的权限 <uses-permission android ...

  9. MyBatis架构设计及源代码分析系列(一):MyBatis架构

    如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...

  10. word中打出希腊字母

    作为一个键盘党,不喜欢用鼠标去选择希腊字母,希望只用键盘就能在word中打出希腊字母. 方法是:按照下图所示对应表,先输入英文字母,然后选中它并按Ctrl+Shift+Q