从文件路径截取需要的内容
文件路径截取内容
在文件的读取、保存操作时可能需要对路径执行裁剪、拼接,比如获取一个text文件的目录位置,返回指定字符串的文件名和扩展名。确定路径是否包含文件夹扩展名等等。而我们自己写的方法很多时候,在多语言处理或者截取字符串长度时容易出现问题。这篇主要是梳理System.IO.Path命名空间下提供的函数能实现对应的哪些功能,通过这些函数我们不需要自己在去写对应的截取路径代码。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string filePath = @"d:\duwenlong\test\path.txt";
FilePathTextBox.Text += $"文件路径: {filePath}\r\n";
FilePathTextBox.Text += $"更改路径字符串的扩展名: \r\n";
FilePathTextBox.Text += System.IO.Path.ChangeExtension(filePath, "zip") + "\r\n";
FilePathTextBox.Text += $"返回指定路径字符串的目录信息: {filePath}\r\n";
FilePathTextBox.Text += System.IO.Path.GetDirectoryName(filePath) + "\r\n";
FilePathTextBox.Text += "返回指定的路径字符串的扩展名。\r\n";
FilePathTextBox.Text += System.IO.Path.GetExtension(filePath) + "\r\n";
FilePathTextBox.Text += "返回指定路径字符串的文件名和扩展名。\r\n";
FilePathTextBox.Text += System.IO.Path.GetFileName(filePath) + "\r\n";
FilePathTextBox.Text += "返回不具有扩展名的指定路径字符串的文件名。\r\n";
FilePathTextBox.Text += System.IO.Path.GetFileNameWithoutExtension(filePath) + "\r\n";
FilePathTextBox.Text += "获取指定路径的根目录信息。\r\n";
FilePathTextBox.Text += System.IO.Path.GetPathRoot(filePath) + "\r\n";
FilePathTextBox.Text += "返回随机文件夹名或文件名。\r\n";
FilePathTextBox.Text += System.IO.Path.GetRandomFileName() + "\r\n";
FilePathTextBox.Text += "创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径。\r\n";
FilePathTextBox.Text += System.IO.Path.GetTempFileName() + "\r\n";
FilePathTextBox.Text += "返回当前系统的临时文件夹的路径。\r\n";
FilePathTextBox.Text += System.IO.Path.GetTempPath() + "\r\n";
FilePathTextBox.Text += "确定路径是否包括文件扩展名。\r\n";
FilePathTextBox.Text += System.IO.Path.HasExtension(filePath) + "\r\n";
FilePathTextBox.Text += "获取一个值,该值指示指定的路径字符串是包含绝对路径信息还是包含相对路径信息。\r\n";
FilePathTextBox.Text += System.IO.Path.IsPathRooted(filePath) + "\r\n";
}
一般工作时从路径字符串中获取需要对应的信息,使用上面的API就可以拿到想要的东西。自己拼接或拆分路径时,可能会遇到并且需要处理多语言编码的编码问题、路径中包含不同语言奇怪字符的问题,和不同语言下。和,互换的问题等等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?