搜索
首页后端开发C#.Net教程C#程序从绝对路径获取文件名

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:mydirfilename.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 FilesGoogle Chromefilename.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。如有侵权,请联系admin@php.cn删除
char数组在C语言中如何使用char数组在C语言中如何使用Apr 03, 2025 pm 03:24 PM

char 数组在 C 语言中存储字符序列,声明为 char array_name[size]。访问元素通过下标运算符,元素以空终止符 '\0' 结尾,用于表示字符串终点。C 语言提供多种字符串操作函数,如 strlen()、strcpy()、strcat() 和 strcmp()。

char在C语言字符串中的作用是什么char在C语言字符串中的作用是什么Apr 03, 2025 pm 03:15 PM

在 C 语言中,char 类型在字符串中用于:1. 存储单个字符;2. 使用数组表示字符串并以 null 终止符结束;3. 通过字符串操作函数进行操作;4. 从键盘读取或输出字符串。

char在C语言中如何处理特殊字符char在C语言中如何处理特殊字符Apr 03, 2025 pm 03:18 PM

C语言中通过转义序列处理特殊字符,如:\n表示换行符。\t表示制表符。使用转义序列或字符常量表示特殊字符,如char c = '\n'。注意,反斜杠需要转义两次。不同平台和编译器可能有不同的转义序列,请查阅文档。

C语言各种符号的使用方法C语言各种符号的使用方法Apr 03, 2025 pm 04:48 PM

C 语言中符号的使用方法涵盖算术、赋值、条件、逻辑、位运算符等。算术运算符用于基本数学运算,赋值运算符用于赋值和加减乘除赋值,条件运算符用于根据条件执行不同操作,逻辑运算符用于逻辑操作,位运算符用于位级操作,特殊常量用于表示空指针、文件结束标记和非数字值。

c#多线程和异步的区别c#多线程和异步的区别Apr 03, 2025 pm 02:57 PM

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

char在C语言中如何进行类型转换char在C语言中如何进行类型转换Apr 03, 2025 pm 03:21 PM

在 C 语言中,char 类型转换可以通过:强制类型转换:使用强制类型转换符将一种类型的数据直接转换为另一种类型。自动类型转换:当一种类型的数据可以容纳另一种类型的值时,编译器自动进行转换。

C语言 sum 的作用是什么?C语言 sum 的作用是什么?Apr 03, 2025 pm 02:21 PM

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

char与wchar_t在C语言中的区别char与wchar_t在C语言中的区别Apr 03, 2025 pm 03:09 PM

在 C 语言中,char 和 wchar_t 的主要区别在于字符编码:char 使用 ASCII 或扩展 ASCII,wchar_t 使用 Unicode;char 占用 1-2 个字节,wchar_t 占用 2-4 个字节;char 适用于英语文本,wchar_t 适用于多语言文本;char 广泛支持,wchar_t 依赖于编译器和操作系统是否支持 Unicode;char 的字符范围受限,wchar_t 的字符范围更大,并使用专门的函数进行算术运算。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。