C# プログラムは 2 つの絶対パスから相対パスを取得します

WBOY
リリース: 2023-09-17 13:25:02
転載
1542 人が閲覧しました

###############導入###

2 つの絶対パスから相対パスを取得する C# プログラムを理解してみましょう。 URI(Uniform Resource Identifier)クラスとMakeRelativeUriメソッドを使って理解していきます。 C# 程序从两个绝对路径获取相对路径

まず、絶対パスと相対パスの違いを理解する必要があります。絶対パスには、システム上のファイルまたはディレクトリを見つけるために必要なすべての情報が含まれています。絶対パスの例は、C:\Program Files\Google Chrome\filename.exe です。

相対パスは、ユーザーが作業している現在のディレクトリからの相対的なファイルのパスを示します。前述の同様の例を考えてみましょう。メインの実行可能ファイルが C:\Program Files にある場合、filename.exe への相対パスは Google Chrome\filename.exe になります。

MakeRelativeUri メソッドを使用して出力を生成します。上記のメソッドの詳細な説明を始める前に、クラスがメソッドのルートである名前空間であることを理解する必要があります。まず System.IO 名前空間を理解してから、URI クラスを理解します。最後に、MakeRelativeUri メソッド、そのコード、アルゴリズムについて詳しく説明します。

System.IO 名前空間

System.IO 名前空間は、C# で複数のクラスとメソッドがどのように機能するかの背後にある理由です。入出力操作の実行に役立つさまざまなクラスが提供されます。これを使用すると、ファイルやさまざまなディレクトリを読み書きすることができます。その下のクラスの一部は次のとおりです。

ファイル

  • このクラスを通じて、ファイルの作成、コピー、削除、移動を行うことができます。

    Directory

  • ディレクトリの作成、削除、その他のさまざまな操作を実行するメソッドを提供します。

    String

  • 一連の文字を表すために使用されます。

    Math

  • C# プログラムで数学的演算を実行するメソッドを提供します。

    パス

  • C# プログラムでファイルを処理するためのメソッドを提供します。絶対パスから拡張子の有無にかかわらずファイル名を取得できます。このメソッドを使用すると、2 つの絶対パス

    から相対パスを取得するというこの記事の目的を達成できます。 URI クラス C# の Uri (Uniform Resource Identifier) クラスは、インターネットまたはファイル システム上のリソースを識別するために使用される System.IO 名前空間の組み込みクラスです。これは、URI を処理するためのいくつかのプロパティとメソッドを提供するクラスです。以下にいくつかの説明があります -

new Uri(string string1)

  • 指定された URI 文字列を使用して、Uri クラスの新しいインスタンスを初期化します。

    new Uri(string string1, string string2)

  • 指定された URI 文字列と uriKind を使用して、Uri クラスの新しいインスタンスを初期化します。

    MakeRelativeUri

  • 2 つの絶対パスから相対パスを取得するために使用されます。

    URI インスタンスを作成するための構文は次のとおりです - リーリー URI インスタンスを作成した後、それを使用して特定のメソッドやプロパティにアクセスできます。以下で説明するメソッドの 1 つは、MakeRelativeUri メソッドです。

    MakeRelativeUri方法

    这是 C# 中 URI 类下的一个方法。它用于从两个绝对路径中查找相对路径。它是 System.IO 路径类下的内置方法,以两个绝对路径作为输入,并返回两者之间的相对路径。在现实世界中,当您需要在两个文件之间创建链接或想要在应用程序中导航时,它会很有帮助。

    从两个绝对路径创建相对路径的语法如下所示−

    Uri baseUri = new Uri(" http://www.tutorialspoint.com/");
    Uri absoluteUri = new Uri("http://www.tutorialspoint.com/code1");
    Uri relativeUri = baseUri.MakeRelativeUri(absoluteUri);
    Console.WriteLine(relativeUri); 
    
    ログイン後にコピー

    算法

    下面的算法将详细介绍MakeRelativeUri方法的概念,以及我们如何从两个绝对路径中找出相对路径。我们将逐步了解使用该方法的方法。

    第 1 步 −  在输入参数中,我们有绝对路径和相对路径两种路径。

    第二步 我们将把两个路径都以字符串的形式作为输入存储。

    第 3 步我们将使用以下代码为它们创建 Uri 实例 -

    Uri baseUri = new Uri(basePath);
    
    ログイン後にコピー

    第 4 步  现在我们将调用所需的方法来生成两个之间的相对路径,即 MakeRelativeUri 方法。

    第五步 现在我们将把结果相对路径存储在输出字符串中。

    第 6 步最后,我们将打印结果输出。

    示例

    using System;
    using System.IO;
    using System.Text;
    class FileName {
       static void Main(string[] args) {
          String path1= @"C:\Drive\App\Images"; 
          
          // here we have stored the first absolute path in the form of a string.
          
          // we have taken the name of the string as path1.
          string path2=  @"C:\Drive\App\Documents\File.doc";
          
          // we have stored the second absolute path in the form of a string.
          
          //we have taken the name path2.
          Uri uri1= new Uri(path1);
          
          //now we have created a Uri instance of path1.
          
          // we have named it uri1.
          Uri uri2= new Uri(path2);
          
          // we have created another Uri instance of path2.
          
          // we have named it uri2.
          string relativePath =uri1.MakeRelativeUri(uri2).ToString();
          
          //here we have called the MakeRelativeUri method in order to generate the output.
          
          // the output generated here stores the relative path from two absolute paths.
          
          //we have stored it in the form of a string.
          
          //the string has been named as relativePath
          string ans= "NewFolder/" + relativePath;
          Console.WriteLine(ans); // the answer is printed finally.
       }
    }
    
    ログイン後にコピー

    输出

    NewFolder/../Documents\File.doc
    
    ログイン後にコピー

    时间复杂度

    在上面的代码中,我们借助了 Uri 类。 Uri 类实例已由输入参数创建。类实例的时间复杂度为 O(1)。同样,在下面的代码中,调用的 MakeRelativeUri 方法也需要 O(1) 时间复杂度。总体而言,代码的时间复杂度为O(1)。

    结论

    在本文中,我们彻底讨论了 Uri 类的使用,并了解了它的一些方法。我们已经严格理解了这样一种方法,那就是MakeRelativeUri方法。

    我们希望本文有助于增强您对 Uri 类和 MakeRelativeUri 方法的了解。

以上がC# プログラムは 2 つの絶対パスから相対パスを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート