Heim >Backend-Entwicklung >C#.Net-Tutorial >Das C#-Programm erhält den relativen Pfad aus zwei absoluten Pfaden

Das C#-Programm erhält den relativen Pfad aus zwei absoluten Pfaden

WBOY
WBOYnach vorne
2023-09-17 13:25:021619Durchsuche

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

Einführung

Versuchen wir, das C#-Programm zu verstehen, um aus zwei absoluten Pfaden einen relativen Pfad zu erhalten. Zum Verständnis verwenden wir die URI-Klasse (Uniform Resource Identifier) ​​und die MakeRelativeUri-Methode.

Wir müssen zunächst den Unterschied zwischen absoluten Pfaden und relativen Pfaden verstehen. Ein absoluter Pfad enthält alle Informationen, die zum Auffinden einer Datei oder eines Verzeichnisses auf Ihrem System erforderlich sind. Ein Beispiel für einen absoluten Pfad ist C:ProgrammeGoogle ChromeDateiname.exe.

Relative Pfade geben uns den Pfad einer Datei relativ zum aktuellen Verzeichnis an, in dem der Benutzer arbeitet. Betrachten Sie das oben erwähnte ähnliche Beispiel: Wenn sich die ausführbare Hauptdatei in C:Programme befindet, lautet der relative Pfad zu filename.exe Google Chromefilename.exe.

Wir werden die MakeRelativeUri-Methode verwenden, um die Ausgabe zu generieren. Bevor wir mit der detaillierten Erläuterung der obigen Methode beginnen, sollten wir verstehen, dass die Klasse der Namespace ist, der die Wurzel der Methode darstellt. Wir werden zuerst den System.IO-Namespace und dann die URI-Klasse verstehen. Abschließend befassen wir uns mit der MakeRelativeUri-Methode, ihrem Code und ihrem Algorithmus.

System.IO-Namespace

Der System.IO-Namespace ist der Grund für die Funktionsweise mehrerer Klassen und Methoden in C#. Es bietet verschiedene Klassen, die uns bei der Durchführung von Eingabe- und Ausgabeoperationen helfen. Damit können wir Dateien und verschiedene Verzeichnisse lesen und schreiben. Einige der darunter liegenden Klassen sind wie folgt.

  • Datei Mit diesem Kurs können wir Dateien erstellen, kopieren, löschen und verschieben.

  • Verzeichnis Es bietet Methoden zum Erstellen, Löschen und Ausführen verschiedener anderer Vorgänge für Verzeichnisse.

  • String Wird zur Darstellung einer Zeichenfolge verwendet.

  • Math Es stellt Methoden zum Ausführen mathematischer Operationen in C#-Programmen bereit.

  • PfadEs stellt Methoden zum Umgang mit Dateien in C#-Programmen bereit. Wir können den Dateinamen mit oder ohne Erweiterung aus dem absoluten Pfad ermitteln. Mit Hilfe dieser Methode werden wir das Ziel dieses Artikels erreichen, nämlich den relativen Pfad aus zwei absoluten Pfaden zu ermitteln,

URI-Klasse

Die Uri-Klasse (Uniform Resource Identifier) ​​in C# ist eine integrierte Klasse im System.IO-Namespace, die zur Identifizierung von Ressourcen im Internet oder Dateisystem verwendet wird. Es handelt sich um eine Klasse, die mehrere Eigenschaften und Methoden zur Behandlung von URIs bereitstellt. Einige werden unten erklärt -

  • new Uri(string string1) Initialisiert eine neue Instanz der Uri-Klasse unter Verwendung der angegebenen URI-Zeichenfolge.

  • new Uri(string string1, string string2) Initialisiert eine neue Instanz der Uri-Klasse unter Verwendung der angegebenen URI-Zeichenfolge und uriKind.

  • MakeRelativeUri Es wird verwendet, um einen relativen Pfad aus zwei absoluten Pfaden zu erhalten.

Die Syntax zum Erstellen einer URI-Instanz lautet wie folgt -

Uri uri = new Uri(“https://www.tutorialspoint.com”);

Nachdem Sie eine URI-Instanz erstellt haben, können Sie diese verwenden, um auf bestimmte Methoden und Eigenschaften zuzugreifen. Eine dieser Methoden, die wir weiter unten betrachten werden, ist die MakeRelativeUri-Methode.

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 方法的了解。

Das obige ist der detaillierte Inhalt vonDas C#-Programm erhält den relativen Pfad aus zwei absoluten Pfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen