首頁 >後端開發 >C#.Net教程 >C#程式從絕對路徑取得檔名

C#程式從絕對路徑取得檔名

王林
王林轉載
2023-08-26 16:41:102566瀏覽

C#程式從絕對路徑取得檔名

介紹

讓我們嘗試了解C#程式從絕對路徑取得檔案名稱。我們將看到 File 類別下的 GetFileName 方法的用法,該方法用於取得檔案名,另一個方法 GetFileNameWithoutExtension 將傳回指定路徑字串的檔案名,不含副檔名。要從兩個絕對路徑取得相對路徑,我們將使用 C# 中的 Uri 類別。 Uri 類別提供了多種處理 URI 的方法,包括我們將在程式碼中使用的 MakeRelativeUri。

檔案是在C#中用來儲存一些資訊的位置。文件的集合被稱為目錄。在C#中,檔案屬於System.IO命名空間,該命名空間還包括其他用於對檔案執行操作的類別。路徑是同一命名空間下的另一個類別。有兩種類型的路徑,絕對路徑和相對路徑。絕對路徑包括定位系統上的檔案或目錄所需的所有資訊。絕對路徑的範例是C:\ Program Files \ Google Chrome \ filename.exe。

相對路徑告訴我們檔案相對於使用者正在工作的目前目錄的路徑。考慮上面提到的類似範例,如果主要執行檔位於C:\ Program Files中,則filename.exe的相對路徑為Google Chrome \ filename.exe。

GetFileName方法

這是C#中檔案類別下的方法,用於從絕對路徑取得檔案名稱。 path.GetFileName 用來執行此操作。它採用絕對路徑作為輸入,並傳回指定路徑的檔案名稱和副檔名。用作輸入的絕對路徑採用字串形式。

文法

public static string GetFileName(string path)

這裡的路徑是我們需要從中取得檔案名稱的字串。

在上面的範例中,GetFileName 是路徑類別的方法。此方法將返迴路徑名中最後一個目錄字元分隔符號之後的字元。如果不存在,那麼它將傳回 NULL 值。如果路徑的最後一個字元是目錄或磁碟區分隔符,那麼它也會傳回 NULL 值。

同樣,如果路徑為null,那麼它將傳回NULL值。

如果檔案名稱是“C:\mydir\filename.exe”,那麼輸出結果就是 filename.exe

演算法

下面的演算法將給出使用 File.GetFileName() 方法取得檔案名稱的逐步過程。

例如,如果我們需要找到檔案的名稱,我們可以使用以下演算法來理解:

第一步  建立一個字串,用於儲存檔案路徑的名稱,記住這是絕對路徑。

步驟2  建立一個原本為空的字串檔名。

第 3 步 我們將把 GetFileName 方法的輸出儲存在字串檔名中。

第四步驟  由於上面程式碼中檔案名稱為“myfile”,因此輸出也將是相同的。

第 5 步  如果在任何情況下路徑為 null,則傳回的輸出也將為 NULL。

步驟6  透過使用GetFileName方法,我們可以從絕對路徑傳回檔案的名稱。

範例

using System;
using System.IO;
using System.Text;

class FileName {
   static void Main(string[] args) {
      //declaring the string path.
      string path = "E://Jinku Hu//Starting Over//Csharp//myfile.md";
      
      //declaring the string filename.
      string filename = null;
      
      //we will be storing the value in the filename variable.
      filename = Path.GetFileName(path);
      Console.WriteLine(filename);
      Console.ReadLine();
   }
}

輸出

myfile.md

時間複雜度

在上面提到的程式碼中,我們可以觀察到主函數內部沒有循環或嵌套循環,因此時間複雜度簡單地為O(1)。

GetFileNameWithoutExtension 方法

之前解釋的方法是使用GetFileName方法傳回檔案的名稱。現在我們將了解如何傳回沒有副檔名的檔案名稱。假設路徑的名稱是“C:\Program Files\Google Chrome\filename.exe”,那麼回傳的輸出就是“filename”。它接受絕對路徑作為輸入,並將檔案名稱作為輸出返回。輸入的絕對路徑是一個字串形式的。語法- “public static string GetFileName(string path)”,這裡的path是我們要取得沒有副檔名的檔名的字串。

在上面的範例中,GetFileName 是路徑類別的方法。此方法將返迴路徑名中最後一個目錄字符分隔符之後的字符,不帶擴展名。如果不存在,那麼它將傳回 NULL 值。如果路徑的最後一個字元是目錄或磁碟區分隔符,那麼它也會傳回 NULL 值。

算法

在此算法中,我们将了解使用 GetFileNameWithoutExtension 方法返回不带扩展名的文件名的分步方法。

第 1 步  创建一个字符串来存储绝对路径的名称。

步骤2  创建另一个名为filename的字符串,该字符串将作为输出返回。

第三步 − 字符串变量filename将以null作为其初始值。

第四步  使用GetFileNameWithoutExtension方法生成的输出将存储在一个字符串filename中。

步骤 5  如果文件为空,则输出也将相同。

第 6 步 − 因此我们可以使用 GetFileNameWithoutExtension 方法返回不带扩展名的文件名。

示例

using System;
using System.IO;
using System.Text;

class FileName {
   static void Main(string[] args) {
      //declare the string path first.
      string path = "C:\Program Files\Google Chrome\filename.exe";
      
      //declare the string filename and store null initially.
      string filename = null;
      filename = Path.GetFileNameWithoutExtension(path);
      
      //store the answer in the variable filename.
      Console.WriteLine(filename);
      Console.ReadLine();
   }
}

输出

filename.exe

时间复杂度

在上述代码中,我们可以观察到只使用了一种直接生成输出并将其存储在相应变量中的方法。没有使用任何循环或任何类型的复杂递归函数。这仅仅构成了时间复杂度为O(1)。

结论

在本文中,我们广泛讨论了使用GetFileName方法从绝对路径中获取带有扩展名的文件名,以及使用GetFileNameWithoutExtension方法获取不带扩展名的文件名的C#程序。

我们希望本文能够帮助您增强有关 C# 的知识。

以上是C#程式從絕對路徑取得檔名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除