C# 程序从绝对路径获取文件的名称

csharpserver side programmingprogramming更新于 2025/9/18 7:47:00

简介

让我们尝试了解 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 值。

如果文件名为"C:\mydir\filename.exe",则输出为 filename.exe。

算法

以下算法将逐步介绍如何使用 File.GetFileName() 方法获取文件的名称。

例如,如果我们必须找到文件的名称,那么我们可以使用以下算法来理解 -

步骤 1 − 创建一个字符串,用于存储文件路径的名称,请记住这是一个绝对路径。

步骤 2 − 创建一个字符串文件名,最初将存储 null。

步骤 3 − 我们将 GetFileName 方法的输出存储在字符串文件名中。

步骤 4 − 由于上述代码中的文件名名称为"myfile",因此输出也将相同。

步骤 5 − 如果无论如何,如果路径为空,则返回的输出也将为空。

步骤 6 − 通过使用 GetFileName 方法,我们可以从绝对路径返回文件的名称。

示例

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

class FileName {
   static void Main(string[] args) {
    //声明字符串路径。
    string path = "E://Jinku Hu//Starting Over//Csharp//myfile.md";
    
    //声明字符串文件名。
    string filename = null;
    
    //我们将把值存储在 filename 变量中。
    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)",这里的路径是字符串,我们必须从中获取不带扩展名的文件的名称。

在上面的例子中,GetFileName 是路径类的一种方法。此方法将返回路径名中最后一个目录字符分隔符后面的字符(不带扩展名)。如果不存在,则返回 NULL 值。如果路径的最后一个字符是目录或卷分隔符,则也将返回 NULL 值。

算法

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

步骤 1 − 创建一个字符串,用于存储绝对路径的名称。

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

步骤 3 −字符串文件名将存储 null 作为其初始值。

步骤 4 − 使用 GetFileNameWithoutExtension 方法生成的输出将存储在字符串文件名中。

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

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

示例

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

class FileName {
   static void Main(string[] args) {
    //首先声明字符串路径。
    string path = "C:\Program Files\Google Chrome\filename.exe";
    
    //声明字符串文件名并初始存储为 null。
    string filename = null;
    filename = Path.GetFileNameWithoutExtension(path);
    
    //将答案存储在变量 filename 中。
    Console.WriteLine(filename);
    Console.ReadLine();
   }
}

输出

filename.exe

时间复杂度

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

结论

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

我们希望本文能帮助您增强对 C# 的了解。


相关文章