Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C# mendapat laluan relatif daripada dua laluan mutlak

Program C# mendapat laluan relatif daripada dua laluan mutlak

WBOY
WBOYke hadapan
2023-09-17 13:25:021557semak imbas

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

Pengenalan

Mari kita cuba memahami program C# untuk mendapatkan laluan relatif daripada dua laluan mutlak. Kami akan menggunakan kelas URI (Uniform Resource Identifier) ​​dan kaedah MakeRelativeUri untuk memahami.

Kita perlu memahami dahulu perbezaan antara laluan mutlak dan laluan relatif. Laluan mutlak merangkumi semua maklumat yang diperlukan untuk mencari fail atau direktori pada sistem anda. Contoh laluan mutlak ialah C:Program FilesGoogle Chromefilename.exe.

Laluan relatif memberitahu kami laluan fail berbanding direktori semasa yang sedang digunakan oleh pengguna. Pertimbangkan contoh serupa yang dinyatakan di atas, jika boleh laku utama terletak dalam C:Program Files, laluan relatif ke filename.exe ialah Google Chromefilename.exe.

Kami akan menggunakan kaedah MakeRelativeUri untuk menjana output. Sebelum memulakan penjelasan terperinci kaedah di atas, kita harus memahami bahawa kelas ialah ruang nama yang merupakan punca kaedah. Kami mula-mula akan memahami ruang nama System.IO dan kemudian kami akan memahami kelas URI. Akhir sekali, kita akan menyelidiki kaedah MakeRelativeUri, kod dan algoritmanya.

System.IO Namespace

Ruang nama System.IO ialah sebab di sebalik cara berbilang kelas dan kaedah berfungsi dalam C#. Ia menyediakan pelbagai kelas untuk membantu kami melaksanakan operasi input dan output. Dengan itu, kita boleh membaca dan menulis fail dan pelbagai direktori. Beberapa kelas di bawahnya adalah seperti berikut.

  • Fail Kita boleh mencipta, menyalin, memadam dan memindahkan fail melalui kelas ini.

  • Direktori Ia menyediakan kaedah untuk mencipta, memadam dan melaksanakan pelbagai operasi lain pada direktori.

  • String Ia digunakan untuk mewakili urutan aksara.

  • Math Ia menyediakan kaedah untuk melaksanakan operasi matematik dalam program C#.

  • Path Ia menyediakan kaedah untuk memproses fail dalam program C#. Kita boleh mendapatkan nama fail dengan atau tanpa sambungan dari laluan mutlak. Dengan bantuan kaedah ini, kami akan mencapai tujuan artikel ini, iaitu untuk mendapatkan laluan relatif daripada dua laluan mutlak,

Kelas URI

Kelas Uri (Uniform Resource Identifier) ​​​​dalam C# ialah kelas terbina dalam dalam ruang nama System.IO yang digunakan untuk mengenal pasti sumber di Internet atau sistem fail. Ia ialah kelas yang menyediakan beberapa sifat dan kaedah untuk mengendalikan URI. Beberapa penjelasan di bawah -

  • Uri baharu(rentetan rentetan1) Memulakan tika baharu kelas Uri menggunakan rentetan URI yang ditentukan.

  • Uri baharu(rentetan rentetan1, rentetan rentetan2) Mulakan kelas Uri menggunakan rentetan URI dan uri baru yang ditentukan contoh.

  • MakeRelativeUri Ia digunakan untuk mendapatkan laluan relatif daripada dua laluan mutlak.

Sintaks untuk mencipta tika URI adalah seperti berikut -

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

Selepas anda mencipta tika URI, anda boleh menggunakannya untuk mengakses kaedah dan sifat tertentu. Satu kaedah sedemikian yang akan kami lawati di bawah ialah kaedah 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 方法的了解。

Atas ialah kandungan terperinci Program C# mendapat laluan relatif daripada dua laluan mutlak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam