###############導入###
2 つの絶対パスから相対パスを取得する C# プログラムを理解してみましょう。 URI(Uniform Resource Identifier)クラスとMakeRelativeUriメソッドを使って理解していきます。
まず、絶対パスと相対パスの違いを理解する必要があります。絶対パスには、システム上のファイルまたはディレクトリを見つけるために必要なすべての情報が含まれています。絶対パスの例は、C:\Program Files\Google Chrome\filename.exe です。
MakeRelativeUri メソッドを使用して出力を生成します。上記のメソッドの詳細な説明を始める前に、クラスがメソッドのルートである名前空間であることを理解する必要があります。まず System.IO 名前空間を理解してから、URI クラスを理解します。最後に、MakeRelativeUri メソッド、そのコード、アルゴリズムについて詳しく説明します。
System.IO 名前空間
System.IO 名前空間は、C# で複数のクラスとメソッドがどのように機能するかの背後にある理由です。入出力操作の実行に役立つさまざまなクラスが提供されます。これを使用すると、ファイルやさまざまなディレクトリを読み書きすることができます。その下のクラスの一部は次のとおりです。
ファイル −
Directory
−String
−Math
−パス
−から相対パスを取得するというこの記事の目的を達成できます。 URI クラス C# の Uri (Uniform Resource Identifier) クラスは、インターネットまたはファイル システム上のリソースを識別するために使用される System.IO 名前空間の組み込みクラスです。これは、URI を処理するためのいくつかのプロパティとメソッドを提供するクラスです。以下にいくつかの説明があります -
new Uri(string string1, string string2)
−MakeRelativeUri
−URI インスタンスを作成するための構文は次のとおりです - リーリー URI インスタンスを作成した後、それを使用して特定のメソッドやプロパティにアクセスできます。以下で説明するメソッドの 1 つは、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 サイトの他の関連記事を参照してください。