Program C# mendapat laluan relatif daripada dua laluan mutlak

WBOY
Lepaskan: 2023-09-17 13:25:02
ke hadapan
1524 orang telah melayarinya

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”);
Salin selepas log masuk

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); 
Salin selepas log masuk

算法

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

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

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

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

Uri baseUri = new Uri(basePath);
Salin selepas log masuk

第 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.
   }
}
Salin selepas log masuk

输出

NewFolder/../Documents\File.doc
Salin selepas log masuk

时间复杂度

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

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!