Essayons de comprendre le programme C# pour obtenir un chemin relatif à partir de deux chemins absolus. Nous utiliserons la classe URI (Uniform Resource Identifier) et la méthode MakeRelativeUri pour comprendre.
Nous devons d’abord comprendre la différence entre les chemins absolus et les chemins relatifs. Un chemin absolu comprend toutes les informations nécessaires pour localiser un fichier ou un répertoire sur votre système. Un exemple de chemin absolu est C:Program FilesGoogle Chromefilename.exe.
Les chemins relatifs nous indiquent le chemin d'un fichier par rapport au répertoire actuel dans lequel l'utilisateur travaille. Prenons l'exemple similaire mentionné ci-dessus, si l'exécutable principal se trouve dans C:Program Files, le chemin relatif vers filename.exe est Google Chromefilename.exe.
Nous utiliserons la méthode MakeRelativeUri pour générer la sortie. Avant de commencer l'explication détaillée de la méthode ci-dessus, nous devons comprendre que la classe est l'espace de noms qui est la racine de la méthode. Nous comprendrons d’abord l’espace de noms System.IO, puis la classe URI. Enfin, nous aborderons la méthode MakeRelativeUri, son code et son algorithme.
L'espace de noms System.IO est la raison derrière le fonctionnement de plusieurs classes et méthodes en C#. Il fournit diverses classes pour nous aider à effectuer des opérations d'entrée et de sortie. Avec lui, nous pouvons lire et écrire des fichiers et divers répertoires. Certaines des catégories en dessous sont les suivantes.
Fichier − Nous pouvons créer, copier, supprimer et déplacer des fichiers dans cette classe.
Directory− Il fournit des méthodes pour créer, supprimer et effectuer diverses autres opérations sur les répertoires.
String− Il est utilisé pour représenter une séquence de caractères.
Math − Il fournit des méthodes pour effectuer des opérations mathématiques dans les programmes C#.
Path−Il fournit des méthodes pour gérer les fichiers dans les programmes C#. Nous pouvons obtenir le nom du fichier avec ou sans extension à partir du chemin absolu. Avec l'aide de cette méthode, nous atteindrons l'objectif de cet article, qui est d'obtenir le chemin relatif à partir de deux chemins absolus,
La classe Uri (Uniform Resource Identifier) en C# est une classe intégrée dans l'espace de noms System.IO qui est utilisée pour identifier les ressources sur Internet ou le système de fichiers. C'est une classe qui fournit plusieurs propriétés et méthodes pour gérer les URI. Certains expliqués ci-dessous -
new Uri(string string1) − Initialise une nouvelle instance de la classe Uri en utilisant la chaîne URI spécifiée.
new Uri(string string1, string string2) − Initialise une nouvelle instance de la classe Uri en utilisant la chaîne URI spécifiée et uriKind.
MakeRelativeUri − Il est utilisé pour obtenir un chemin relatif à partir de deux chemins absolus.
La syntaxe de création d'une instance d'URI est la suivante -
Uri uri = new Uri(“https://www.tutorialspoint.com”);
Après avoir créé une instance d'URI, vous pouvez l'utiliser pour accéder à certaines méthodes et propriétés. L'une de ces méthodes que nous visiterons ci-dessous est la méthode 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 方法的了解。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!