当前位置: 首页 > news >正文

C#从入门到精通(22)—Path类的使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站

前言:

大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发上位机软件的过程中,有时候需要对文件的路径、文件名、扩展名进行操作,下面进行详细介绍:

1、合并路径

将盘符、文件夹、文件进行合并成最全的文件路径

   string path1 = "d:\\";//盘符后面要先加上斜杠string path2 = "test";string path3 = "123456.txt";string path = Path.Combine(path1, path2, path3);//合并路径Console.WriteLine(path);

输出:

d:\test\123456.txt

2、获取目录信息

目录就是文件的上一层目录

   string path4 = @"D:\test\123456.txt";string dir = Path.GetDirectoryName(path4);//获取目录信息Console.WriteLine(dir);

输出:

D:\test

3、获取文件扩展名

所谓扩展名比如.txt文件的扩展名就是.txt

  string extension = Path.GetExtension(path4);//返回扩展名Console.WriteLine(extension);

输出:

.txt

4、获取文件名

文件名是不包含任何目录信息的

 string fileName = Path.GetFileName(path4);//返回文件名Console.WriteLine(fileName);

输出:

123456.txt

5、获取不包含扩展名的文件名

此方法获取的文件名中不包含扩展名,比如123456.txt,最后只返回123456。

 string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path4);//返回不包含扩展名的文件名Console.WriteLine(fileNameWithoutExtension);

输出:

123456

6、获取全路径

我传入了一个相对目录,然后此方法返回一个绝对路径,也就是在你输入的目录之前加上应用程序运行目录。

  string fullPath = Path.GetFullPath("test");//获取全路径,比较适合传入相对路径,自动补上应用程序路径Console.WriteLine(fullPath);

输出:

C:\Users\zhaij\source\repos\WindowsFormsApp5\WindowsFormsApp5\bin\Debug\test

7、获取根目录信息

所谓根目录就是盘符,在硬盘的哪个盘下。

 string pathRoot = Path.GetPathRoot(path4);//获取根目录信息Console.WriteLine(pathRoot);

输出:

D:\

8、判断是否含有扩展名

判断一个文件的全路径是否含有扩展名

 bool HasExtension = Path.HasExtension(path4);//判断是否含有扩展名Console.WriteLine(HasExtension);

输出:

True

9、改变文件扩展名

下面的代码 将文件名的扩展名改成了.ini

  string changePath = Path.ChangeExtension(path4, "ini");//改变文件扩展名Console.WriteLine(changePath);

输出:

D:\test\123456.ini

10、获取不允许使用的路径字符

 char[] PathChars = Path.GetInvalidPathChars();//获取不允许使用的路径字符

11、 获取不允许使用的文件名字符

char[] FileNameChars = Path.GetInvalidFileNameChars();//获取不允许使用的文件名字符

作者介绍

马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在CSDN已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!

年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024 高教社杯 数学建模国赛 (C题)深度剖析|农作物的种植策略|数学建模完整代码+建模过程全解全析
  • 【项目一】基于pytest的自动化测试框架day1
  • CRE6959AM70V055S 超低待机功耗反激式开关电源芯片
  • CSS解析:盒模型
  • linux~~目录结构远程登录教程(xshell+xftp)
  • 鼠标控制dom元素的大小。采用ResizeObserver——监听元素大小的变化
  • HarmonyOS开发实战( Beta5版)合理使用动画丢帧规范实践
  • SpringBoot+Vue实现大文件上传(断点续传-后端控制(一))
  • 卷积神经网络与小型全连接网络在MNIST数据集上的对比
  • 设计模式—2—单例模式
  • 基于 XILINX FPGA 的 Cameralink Full 模式相机采集系统技术实施方案研究报告
  • WebRTC协议下的视频汇聚融合技术:EasyCVR视频技术构建高效视频交互体验
  • 计算机网络(八股文)
  • 微信小程序rpx和px关系
  • 系统调用之文件操作详解
  • django开发-定时任务的使用
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java深入 - 深入理解Java集合
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Lsb图片隐写
  • Mac转Windows的拯救指南
  • Python中eval与exec的使用及区别
  • React-生命周期杂记
  • Redis 懒删除(lazy free)简史
  • 笨办法学C 练习34:动态数组
  • 闭包--闭包作用之保存(一)
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 订阅Forge Viewer所有的事件
  • 番外篇1:在Windows环境下安装JDK
  • 分享几个不错的工具
  • 复杂数据处理
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 排序算法之--选择排序
  • 漂亮刷新控件-iOS
  • 最简单的无缝轮播
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #大学#套接字
  • #前后端分离# 头条发布系统
  • (2.2w字)前端单元测试之Jest详解篇
  • (floyd+补集) poj 3275
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二)springcloud实战之config配置中心
  • (二)斐波那契Fabonacci函数
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)c52学习之旅-中断
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)为什么要选择C++
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程