5

URL のサブディレクトリの名前を抽出し、ASP.NET C# のサーバー側から文字列に保存できるようにしたいと考えています。たとえば、次のような URL があるとします。

http://www.example.com/directory1/directory2/default.aspx

URL から値「directory2」を取得するにはどうすればよいですか?

4

5 に答える 5

12

Uri クラスには、セグメントと呼ばれるプロパティがあります。

var uri = new Uri("http://www.example.com/directory1/directory2/default.aspx");
Request.Url.Segments[2]; //Index of directory2
于 2012-05-10T22:22:19.933 に答える
2

これはソートコードです:

string url = (new Uri(Request.Url,".")).OriginalString
于 2013-02-20T17:47:12.960 に答える
1

私は .LastIndexOf("/") を使用し、そこから逆方向に作業します。

于 2012-05-10T22:22:30.380 に答える
1

System.Uri を使用して、パスのセグメントを抽出できます。例えば:

public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var uri = new System.Uri("http://www.example.com/directory1/directory2/default.aspx");
    }
}

次に、プロパティ "uri.Segments" は、["/"、"directory1/"、"directory2/"、"default.aspx"] のような 4 つのセグメントを含む文字列配列 (string[]) です。

于 2012-05-10T22:36:16.597 に答える
0

splitクラスのメソッドを使用stringして分割できます/

ページディレクトリを選択したい場合は、これを試してください

string words = "http://www.example.com/directory1/directory2/default.aspx";
string[] split = words.Split(new Char[] { '/'});
string myDir=split[split.Length-2]; // Result will be directory2

MSDN の例を次に示します。メソッドの使い方split

using System;
public class SplitTest
{
  public static void Main() 
  {
     string words = "This is a list of words, with: a bit of punctuation" +
                           "\tand a tab character.";
     string [] split = words.Split(new Char [] {' ', ',', '.', ':', '\t' });
     foreach (string s in split) 
     {
        if (s.Trim() != "")
            Console.WriteLine(s);
     }
   }
 }
// The example displays the following output to the console:
//       This
//       is
//       a
//       list
//       of
//       words
//       with
//       a
//       bit
//       of
//       punctuation
//       and
//       a
//       tab
//       character
于 2012-05-10T22:18:54.237 に答える