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

C#路径的相关操作

1、判定一个给定的C#路径是否有效,合法

通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的C#路径/文件名字符,可以根据它来判断路径中是否包含非法字符;

2、如何确定一个C#路径字符串是表示目录还是文件

使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件

上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件;

3、获得C#路径的某个特定部分

Path.GetDirectoryName:返回指定路径字符串的目录信息。

Path.GetExtension:返回指定的路径字符串的扩展名。

Path.GetFileName:返回指定路径字符串的文件名和扩展名。

Path.GetFileNameWithoutExtension:返回不具有扩展名的路径字符串的文件名。

Path.GetPathRoot:获取指定路径的根目录信息。

4、准确地合并两个路径而不用去担心那个烦人的“\”字符

使用Path.Combine方法,它会帮你处理烦人的“\”。

5、获得系统目录的路径

Environment.SystemDirectory属性:获取系统目录的完全限定路径

Environment.GetFolderPath方法:该方法接受的参数类型为Environment.SpecialFolder枚举,通过这个方法可以获得大量系统文件夹的路径,如我的电脑,桌面,系统目录等

Path.GetTempPath方法:返回当前系统的临时文件夹的路径

6、判断一个C#路径是绝对路径还是相对路径

使用Path.IsPathRooted方法

7、读取或设置当前目录

使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法

8、使用相对路径

设置当前目录后(见上个问题),就可以使用相对路径了。对于一个相对路径,我们可以使用Path.GetFullPath方法获得它的完全限定路径(绝对路径)。

注意:如果打算使用相对路径,建议你将工作目录设置为各个交互文件的共同起点,否则可能会引入一些不易发现的安全隐患,被恶意用户利用来访问系统文件。

9、文件夹浏览对话框(FolderBrowserDialog类)

主要属性:Description:树视图控件上显示的说明文本,如上图中的“选择目录--练习”;RootFolder:获取或设置从其开始浏览的根文件夹,如上图中设置的我的电脑(默认为桌面);SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文件夹,关闭对话框时根据该属性获取用户用户选定的路径;ShowNewFolderButton:获取或设置是否显示新建对话框按钮;

主要方法:ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由SelectedPath属性获取用户选定的路径;
10,获取Debug的路径
string str = Application.StartupPath;

转载于:https://www.cnblogs.com/pnljs/p/3236083.html

相关文章:

  • 第八章 对象和数组
  • 用 HTML 编写博客栏目
  • 指针的本质
  • intent intent-filter
  • [HDU] 1054 Strategic Game 入门树形DP
  • JS Invalid Label ,eval错误解决方法
  • A2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)
  • boost库在工作(37)网络UDP服务端之七
  • H面试程序(0):字符串一些常用函数的实现
  • 不容易系列之(4)——考新郎[HDU2049]
  • 正则表达式介绍
  • hdu 1029
  • SQL server经验分享:SQLSERVER 被标记为“可疑”的数据库处理方法
  • 代码自动生成工具MyGeneration之一(程序员必备工具)
  • ASP.NET中利用Split实现对Checkbox的字符串分离放到DataTable里面
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017届校招提前批面试回顾
  • Android单元测试 - 几个重要问题
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Facebook AccountKit 接入的坑点
  • linux安装openssl、swoole等扩展的具体步骤
  • SAP云平台里Global Account和Sub Account的关系
  • webgl (原生)基础入门指南【一】
  • 二维平面内的碰撞检测【一】
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 区块链共识机制优缺点对比都是什么
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 用mpvue开发微信小程序
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #前后端分离# 头条发布系统
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2.2w字)前端单元测试之Jest详解篇
  • (三十五)大数据实战——Superset可视化平台搭建
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)关于pipe()的详细解析
  • ****Linux下Mysql的安装和配置
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core 版本不支持的问题
  • .net 程序发生了一个不可捕获的异常
  • .Net(C#)自定义WinForm控件之小结篇
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .pop ----remove 删除
  • /usr/bin/env: node: No such file or directory
  • @SentinelResource详解
  • @软考考生,这份软考高分攻略你须知道
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C#]winform部署PaddleOCRV3推理模型
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C++]类和对象【下】
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!
  • [Codeforces1137D]Cooperative Game