Le programme C# obtient le chemin relatif à partir de deux chemins absolus

WBOY
Libérer: 2023-09-17 13:25:02
avant
1544 Les gens l'ont consulté

C# 程序从两个绝对路径获取相对路径

Présentation

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.

Espace de noms System.IO

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#.

  • PathIl 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,

Classe URI

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”);
Copier après la connexion

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.

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); 
Copier après la connexion

算法

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

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

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

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

Uri baseUri = new Uri(basePath);
Copier après la connexion

第 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.
   }
}
Copier après la connexion

输出

NewFolder/../Documents\File.doc
Copier après la connexion

时间复杂度

在上面的代码中,我们借助了 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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal