C# 如何获取当前应用程序的上一级路径

如我们所常知的那样, Server.MapPath() 属性可以获取应用程序的根目录

Server.MapPath 的使用方法

用法:

1.Server.MapPath ("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\

2.Server.MapPath ("./") 表示所在页面的当前目录

注:等价于Server.MapPath ("") 返回 Server.MapPath ("")所在页面的物理文件路径

3.Server.MapPath ("../")表示上一级目录

4.Server.MapPath ("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置

如:C:\Inetpub\wwwroot\Example\ 注:等效于Server.MapPath ("~")。

但是, 有些时候, 我们需要获取根目录以上的路径, 这时候该肿么办?

下面 提出两种解决方案。

第一种是

C#的path.GetFullPath 获取上级目录实现方法

string path = new directoryinfo("../").fullname;//当前应用程序路径的上级目录

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.io;
namespace pathtest
{
class program
{
static void main(string[] args)
{
//使用appdomain获取当前应用程序集的执行目录
string dir = appdomain.currentdomain.basedirectory;
string info = string.format("appdomain方法获取当前程序集目录:{0}", dir);
console.writeline(info);
//使用path获取当前应用程序集的执行的上级目录
dir = path.getfullpath("..");
info = string.format("path方法获取当前程序集上级目录:{0}", dir); (www.jb51.net)
console.writeline(info);
//使用path获取当前应用程序集的执行目录的上级的上级目录
dir = path.getfullpath(@"....");
info = string.format("path方法获取当前程序集目录的级的上级目录:{0}", dir);
console.writeline(info);
//使用path获取当前应用程序集的执行目录的上级目录
dir = path.getfullpath(@"......");
info = string.format("path方法获取当前程序集目录的上级目录的上级目录:{0}", dir);
console.writeline(info);
//在当前程序集目录中添加指定目录
dir = path.getfullpath(@"io");
info = string.format("在当前程序集目录中添加指定目录:{0}", dir);
console.writeline(info);
console.read();
}
}
}

这种情况, 不是常有效, 肿么办呢? 我们可以采取灵活一点的办法, 下面介绍灵活一点的办法。

不仅仅可以针对上级目录的问题, 还可以灵活的处理许多类似的问题,  多谢一位前辈对我的指点~

第二种做法的思路是这样:

首先获取应用程序的根目录,

string root = System.Web.HttpContext.Current.Server.MapPath("~/");

再用数组,把 "\\" 作为分隔符, 区别开来
string[] temp = root.Split("\\".ToCharArray());

遍历得到的数组
for (int i = 0; i < temp.Length - 2; i++)
{
a += temp[i];
a += "\\";
}

比如获取上一级, 就把 length -2 , 就可以获得上一级的目录

上上级, 就继续 减掉 2个, 以此类推。

就说这么多了, 希望对大家有所帮助~

时间: 2024-10-17 00:49:20

C# 如何获取当前应用程序的上一级路径的相关文章

python里读取文件路径上一级路径及文件的方法

这个有时隔时间久了自己都记不清了具体的语句,现在总结一下. 一.获取当前文件路径 二.获取上一级文件路径 这里可以想象出获取与自己同级文件的路径,这么写: 即先获取上级目录,然后通过join函数来把同级的目录test拼进来. 三.获取当前路径下的所有文件名 得到的是一个列表的数据,是当前目录下的所有文件夹及文件的名称. 四.检查是否是文件及文件是否存在 先介绍这么多,比较简单总的是为了可以加深自己的记忆.还有删除目录.获取当前环境.分离文件.分离扩展名等,这里列举的是比较常用的. 原文地址:ht

小程序返回上一级页面背景音乐报错 setBackgroundAudioState:fail title is nil!;

小程序初始化在onLoad的时候加载了一次背景音乐. 如果此时报错是title必传.如果没有 会报错一次 setBackgroundAudioState:fail title is nil!; 这个都知道 但同时我们可能有这样的一个情况 我再A页面. 播放了背景音乐 然后跳到B页面.修改了某些音乐参数 再调回A页面的时候报错了 解决: 在request的回调里面设置一次. 我尝试过在外面.在onShow设置.都没用,只有在success的回调的时候才会触发 原文地址:https://www.cn

c#获取当前运行程序所在的目录

C#获取项目程序及运行路径的方 1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”: 2.c# winform用 A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”: B:“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称: C:“AppDomain.CurrentDomain.BaseDirec

C++ 一个程序获取另一个程序Edit控件的内容

//一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if(hWnd) { MessageBox("get windows"); //根据窗口句柄获取EDIT控件的ID,但是这个ID是通过VS工具spy++获取的 HWND h = ::GetDlgItem(hWnd,0x3E9); if (h!=NULL) { CString str0; //要知

请给出程序,功能为获取“一段程序代码”运行时长

有一天看到了几个java题目,我就写了一下,废话少说,直接上代码了 3.已知int型数组arr[t], 请:① 打印该数组.输出格式为:[arr1,arr2,arr3,...]. ② 输出数组的最大值max与最小值min. ③ 使用冒泡排序对数组进行排序,并打印排序后数组. 4. 请给出程序,功能为获取“一段程序代码”运行时长.要求: ① 程序框架在父类中定义. ② “一段程序代码”在子类中给出,并覆盖父类中对应方法. ③ “一段程序代码”为:打印一个由“*”组成的图形,见图1. 图1 第三题:

c#获取当前应用程序所在路径

一.获取当前文件的路径1.   System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName     获取模块的完整路径,包括文件名.2.   System.Environment.CurrentDirectory     获取和设置当前目录(该进程从中启动的目录)的完全限定目录.3.   System.IO.Directory.GetCurrentDirectory()      获取应用程序的当前工作目录.这个不一定是程

Java之Property-统获取一个应用程序运行的次数

1 package FileDemo; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.util.Properties; 8 9 public class PropertyTest { 10 11 /** 12 * @param args 13 * @throws IOE

获取Web应用程序的根目录

一般在系统中(使用struts框架)如果要获取web应用程序的根目录都是通过 ServletActionContext.getServletContext().getRealPath(""); 来进行获取,但servletActionContext是struts2中的过滤器绑定的ThreadLocal变量,必须要经过FilterDispatcher才能够使用  否则获取参数可能会为空. 之前在系统系统中需要在定时任务中获取系统根目录再通过上面的方式就会出现异常,所以封装一个工具方法.工

MVC应用程序显示上传的图片

前两篇<MVC应用程序实现上传文件>http://www.cnblogs.com/insus/p/3590907.html和<MVC应用程序实现上传文件(续)>http://www.cnblogs.com/insus/p/3594834.html,我们练习了上传文件,当然上传图片也是一样. 此篇我们练习,怎样在MVC应用程序中显示用户上传的图片.为了接近更真实的练习,Insus.NET决定对以前的程序修改一下,就是上传的目录把原来的Temp目录改为UploadFiles目录.也就是