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 FilesGoogle Chromefilename.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#程序从绝对路径获取文件名的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1434969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C# 中缺少哪些 C++ 功能?
上一篇 2025年12月17日 10:26:56
C#中有哪些类?
下一篇 2025年12月17日 10:27:11

相关推荐

  • 如何处理Laravel API报错问题

    标题:如何处理Laravel API报错问题,需要具体代码示例 在进行 Laravel 开发时,经常会遇到 API 报错的情况。这些报错可能来自于程序代码逻辑错误、数据库查询问题或是外部 API 请求失败等多种原因。如何处理这些报错是一个关键的问题,本文将通过具体的代码示例来演示如何有效处理 Lar…

    2026年8月31日
    100
  • WPF 使用 Composition API 做高性能渲染

    在 wpf 中,许多开发者会遇到渲染性能的问题。尽管 wpf 的渲染性能比浏览器渲染要高出不少,但仍然无法满足游戏级别的渲染需求。wpf 使用的 directx 版本仅优化到 9 级别,与 directx 9 的性能相当。鉴于开发者的需求,微软推出了现代渲染方法——composition api,这…

    2026年8月31日
    000
  • 如何解决LaravelLivewire测试问题?Pest插件助你提升测试效率

    可以通过以下地址学习 Composer:学习地址 在开发 laravel 项目时,livewire 组件的测试一直是个挑战。最近,我在项目中遇到了 livewire 组件测试效率低下的问题,导致开发进度受阻。经过一番探索,我发现了 pest livewire 插件,它大大简化了我的测试流程,提升了测…

    用户投稿 2026年8月31日
    100
  • CSS如何实现图片底部圆弧边框效果?

    CSS打造图片底部圆弧边框:高效技巧详解 在网页设计中,灵活运用CSS创建各种形状的边框是提升页面美观度的关键。本文将详细讲解如何使用CSS高效地实现图片底部圆弧边框效果,解决开发者在实际应用中常遇到的难题。 问题: 如何仅用CSS为图片底部创建圆弧边框?单纯使用border-radius属性似乎无…

    2026年8月31日
    000
  • 余承东称华为引领智能驾驶发展 为L3的到来做好了准备

    华为在尊界技术发布会上宣布huawei ads取得重大突破,实现全国范围内的自动驾驶能力,并为l3级自动驾驶做好准备。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 尊界S800 华为ADS 3.0已搭载于享界S9,并采用端到端类人驾驶方案…

    2026年8月31日
    000
  • 《师父》团队新游《开球》在线玩家近4万 靠实力足球大战

    6月19日,由法国游戏开发团队 sloclap 推出的全新在线多人足球动作游戏《开球!rematch》正式上线,登陆 pc(steam)、playstation 5 和 xbox series x|s 平台。目前该游戏在steam平台获得多半好评,平均同时在线玩家接近4万人。值得注意的是,游戏暂未开…

    2026年8月31日
    000
  • Laravel开发技巧:优雅判断请求类型

    Laravel开发技巧:优雅判断请求类型 在使用Laravel框架进行开发时,经常会遇到需要根据不同的请求类型执行不同的操作的情况。例如,需要在处理API请求时区分GET请求和POST请求,或者在前后端分离项目中根据请求类型返回不同的响应。为了更加优雅和方便地判断请求类型,可以借助Laravel框架…

    2026年8月31日
    100
  • TikTok直播画面卡顿怎么办 TikTok直播画面优化与网络调整方法

    先检查网络、再调整设置、最后优化设备。优先使用有线连接,确保上传带宽充足,避免多人共用;OBS中设720p/30fps、比特率3000-6000kbps,选用NVENC编码器并开启动态码率;关闭后台应用,清理缓存,保持设备散热良好并及时更新系统,可有效解决直播卡顿问题。 直播画面卡顿,核心就三点:网…

    2026年8月31日
    000
  • win11电源计划选项不见了怎么恢复_win11电源计划选项丢失恢复教程

    首先通过注册表编辑器检查并修改NoClose键值为0,随后重启Windows资源管理器进程以刷新界面,接着使用管理员命令提示符执行powercfg -restoredefaultschemes恢复默认电源计划,最后运行sfc和DISM命令修复系统文件并安装最新更新,确保电源选项恢复正常。 如果您在W…

    2026年8月31日
    100
  • VSCode怎么贴小图_VSCode插入图片与Markdown图片预览教程

    VSCode怎么贴小图_VSCode插入图片与Markdown图片预览教程VSCode怎么贴小图_VSCode插入图片与Markdown图片预览教程VSCode怎么贴小图_VSCode插入图片与Markdown图片预览教程VSCode怎么贴小图_VSCode插入图片与Markdown图片预览教程

    答案:在VSCode中插入Markdown图片需使用语法,路径推荐用相对路径,预览依赖内置功能或扩展;可通过HTML 标签调整大小,常见问题为路径错误,建议使用Paste Image等扩展提升效率,高级效果如图文混排需结合HTML与CSS,但需注意平台兼容性。 VSCode中插入图片,特别是Mark…

    2026年8月31日 用户投稿
    000
  • qq浏览器密码本功能在哪里_QQ浏览器已保存密码查看与管理入口

    1、打开QQ浏览器点击「我的」→「设置」→「隐私与安全」→「密码管理」,验证身份后可查看已保存的账号密码;2、主页下滑工具栏可能有「密码本」快捷入口,支持直接访问或手动添加;3、登录时通过系统自动填充功能选择QQ浏览器,可调用已保存的凭证并验证保存情况。 如果您在使用QQ浏览器时保存了网站登录信息,…

    2026年8月31日
    100
  • 如何自定义Yandex浏览器 俄罗斯引擎Yandex主题与界面设置

    更换主题可选择系统、浅色或深色主题,或从扩展商店下载更多主题;2. 自定义工具栏可通过拖动按钮调整顺序,右键“自定义”管理可见性;3. 设置默认搜索引擎可在“设置→搜索引擎”中选择或添加如百度等,通过关键词快速调用;4. 语言与地区设置建议添加俄语并设为首选,选择俄罗斯地区以优化显示格式;5. 启用…

    2026年8月31日
    000
  • Windows 10 引入新功能:选择微软账户,抛弃本地账户

    Windows 10 引入新功能:选择微软账户,抛弃本地账户Windows 10 引入新功能:选择微软账户,抛弃本地账户Windows 10 引入新功能:选择微软账户,抛弃本地账户Windows 10 引入新功能:选择微软账户,抛弃本地账户

    N软网报道指出,在配置个人计算机时,如果选择本地账户,可能会发现Windows 10的一个新功能正频繁提示创建微软账户。自2024年5月14日起,这一功能将在Windows 10五月2024补丁周二更新中成为标准配置。 近年来,不借助微软账户操作Windows设备变得愈发复杂。近期的系统更新也推动了…

    2026年8月31日 用户投稿
    100
  • 供需转换致价格战升级,SiC产业链或进入出清倒计时

    sic产业:2024年巨变,价格战提前引爆行业洗牌 2024年,SiC产业迎来翻天覆地的变化。新产能的快速投放,国产SiC器件性能的显著提升,以及车载应用领域从外围向核心部件的拓展,都推动SiC市场快速发展。与此同时,SiC产品价格持续下跌,预计2025年将进一步降低,这将加速SiC在民用汽车领域的…

    2026年8月31日
    000
  • 如何解决PHP变量输出格式化问题?使用Composer安装tysonandre/var_representation_polyfill库可以!

    可以通过一下地址学习composer:学习地址 在PHP开发中,变量的字符串化输出是一个常见需求,但var_export()函数的输出格式有时并不理想。例如,它在处理数组时,无法区分有序数组和无序数组,导致输出不够直观。此外,对于一些特殊字符的处理也存在问题。为了解决这些问题,我找到了var_rep…

    用户投稿 2026年8月31日
    000
  • Laravel队列执行失败的原因分析与解决方案

    Laravel队列执行失败的原因分析与解决方案 在使用Laravel开发应用程序时,我们经常会用到队列来处理一些异步任务,比如发送邮件、生成报表等。然而,有时候我们会发现队列任务执行失败,导致任务无法完成。本文将探讨Laravel队列执行失败的原因,并提供一些解决方案,同时会附带具体的代码示例。 一…

    2026年8月31日
    100
  • 谷歌权限所有者分配指南_谷歌权限管理的设置方法与权限分配流程

    谷歌权限所有者应选择技术过硬、责任心强、熟悉业务且具备良好沟通能力的人员,通常是部门负责人或it主管;2. 权限分配需遵循最小权限原则,通过谷歌管理控制台进行精细化配置,避免过度授权和权限蔓延;3. 必须强制启用两步验证以增强账户安全;4. 定期审查权限并记录文档,确保权限随人员变动及时调整;5. …

    2026年8月31日
    000
  • 炉石传说茶壶灌注牧卡组怎么搭配 炉石传说茶壶灌注牧代码分享6月

    炉石传说现已正式上线32.4.2版本补丁,那么更新后有哪些强势卡组值得关注呢?本次推荐的茶壶灌注牧表现相当亮眼,接下来就为大家带来炉石传说茶壶灌注牧卡组详情,有兴趣的玩家千万不要错过! 炉石传说茶壶灌注牧卡组 6月茶壶灌注牧代码分享: 这是一套经典的茶壶灌注牧模板。由于本次补丁削弱了一些超展开类卡组…

    2026年8月31日
    000
  • mysql怎么修改字段允许为空

    在mysql中,可以利用alter table语句配合modify修改字段允许为空,modify用于修改表中字段的数据长度、数据类型以及字段的约束条件,语法为“alter table表名 modify字段名字段类型(长度) null;”。 本教程操作环境:windows10系统、mysql8版本、D…

    2026年8月31日
    100
  • 如何用Excalidraw绘制出美观又随性的手绘风格图表?

    Excalidraw:轻松绘制美观随性的手绘风格图表 许多人被那些既美观又充满随意感的图表所吸引。例如,如下所示的图表风格,线条流畅自然,整体和谐统一,令人向往: 这种风格的图表并非出自复杂的绘图软件,而是借助了在线绘图工具Excalidraw轻松实现。Excalidraw 是一款功能强大的工具,它…

    2026年8月31日
    000

发表回复

登录后才能评论
关注微信