C#現在のアプリケーションの上位パスの取得方法

2459 ワード

私たちがよく知っているように、Server.MapPath()プロパティは、アプリケーションのルートディレクトリを取得できます.
Server.MapPathの使い方
使用方法:
1.Server.MapPath("/")アプリケーションルートディレクトリの場所、例えばC:Inetpubwwwroot
2.Server.MapPath("./")は、現在のページのディレクトリを表します.
注意:サーバーと同等です.MapPath()はサーバに戻ります.MapPath(「」)が存在するページの物理ファイルパス
3.Server.MapPath(".../")は、前のレベルのディレクトリを表します.
4.Server.MapPath("~/")は現在のアプリケーションレベルのディレクトリを表し、ルートディレクトリであればルートディレクトリ、仮想ディレクトリであれば仮想ディレクトリが存在する場所である
C:InetpubwwwrootExample注:サーバと同等です.MapPath ("~").
 
しかし、ルートディレクトリ以上のパスを取得する必要がある場合があります.この場合、腫れていますか? 
 
以下に2つのソリューションを提案する.
一つ目は
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();}}}
 
この場合、よく効くのではないでしょうか.腫れていますか.私たちは柔軟な方法を取ることができます.以下、柔軟な方法を紹介します.
 
上司のカタログの問題だけでなく、似たような問題も柔軟に処理できます.先輩のご指導ありがとうございます.
 
2つ目のアプローチはこうです.
 
まずアプリケーションのルートディレクトリを取得し、
string root = System.Web.HttpContext.Current.Server.MapPath("~/");
 
さらに配列で「\」を区切り記号としてstring[]temp=root.Split("\\".ToCharArray());
 
遍歴して得られた配列for(int i=0;i例えば上位レベルを取得するとlength-2を上位レベルのディレクトリを取得できます
目上の人は、2つ減らし続けます.
 
これだけですが、皆さんのお役に立てばと思います.
転載先:https://www.cnblogs.com/29boke/p/5828342.html