深入path类
Path类放在System.IO命名空间里。Path是一个只包含有静态方法的实例类,所以它不需要在使用之前实例化。它有各种方法用于处理文件的扩展名、文件名、根路径,以及和更多和路径相关的方面。下面就是可用方法的一个简表:
* ChangeExtension:文件扩展名被更改为新的值
* Combine:两个路径值被合并在一起
* GetDirectoryName:当前路径的目录被返回
* GetExtension:包含在路径里的文件扩展名被返回
* GetFileName:从路径返回文件名和扩展名
* GetFileNameWithoutExtension:没有扩展名的文件名被返回
* GetFullPath:完整的路径被返回
* GetPathRoot:返回路径的根目录
* GetTempFileName:字符串包含一个唯一的文件名
* GetTempPath:字符串值包含临时文件夹路径
* HasExtension:指示路径是否包含文件扩展名的布尔值
* IsPathRooted:指示路径是否包含绝对路径的布尔值
这些方法把主控权交到你的手里。他们会简化操作文件名及其路径各个方面的任务。使用示例代码能够更好地说明这些方法。下面的C#列表简要地说明了Path类的强大能力:
- string pth = "c://builder//test//test.txt";
- if (Path.HasExtension(pth))
- {
- Console.WriteLine("Path has an extension: {0}.", Path.GetExtension(pth));
- }
- else
- {
- Console.WriteLine("Path has no extension: {0}.",
- Path.GetFileNameWithoutExtension(pth));
- }
- if (Path.IsPathRooted(pth))
- {
- Console.WriteLine("The path contains root information: {0}.",
- Path.GetPathRoot(pth));
- }
- Console.WriteLine("The filename is {0}.", Path.GetFileName(pth));
- Console.WriteLine("The full path is {0}.", Path.GetFullPath(pth));
- Console.WriteLine("The location for temporary files is {0}.",
- Path.GetTempPath());
- Console.WriteLine("The following temp file is available: {0} .",
- Path.GetTempFileName());
- Console.WriteLine("The set of invalid characters in a path is:");
- foreach (char c in Path.InvalidPathChars)
- {
- Console.WriteLine(c);
- }
路径要在一个字符串变量里设置,而Path类将它用作其代码里所有操作的基础。执行这段代码就会得到下面的结果:
The path contains root information: c:/.
The filename is test.txt.
The full path is c:/builder/test/test.txt.
The location for temporary files is C:/Windows/Temp/.
The following temp file is available: C:/Windows/Temp/tmpC7.tmp .
The set of invalid characters in a path is:
"
<
>
|
对于使用VB.NET编程的人来说,句法是类似的。下面就是VB.NET的代码:
Dim pth As String = "c://builder//test//test.txt"
Dim c As Char
If (Path.HasExtension(pth)) Then
Console.WriteLine("Path has an extension: {0}.", Path.GetExtension(pth))
Else
Console.WriteLine("Path has no extension: {0}.",
Path.GetFileNameWithoutExtension(pth))
End If
If (Path.IsPathRooted(pth)) Then
Console.WriteLine("The path contains root information: {0}.",
Path.GetPathRoot(pth))
End If
Console.WriteLine("The filename is {0}.", Path.GetFileName(pth))
Console.WriteLine("The full path is {0}.", Path.GetFullPath(pth))
Console.WriteLine("The location for temporary files is {0}.",
Path.GetTempPath())
Console.WriteLine("The following temp file is available: {0} .",
Path.GetTempFileName())
Console.WriteLine("The set of invalid characters in a path is:")
For Each c In Path.InvalidPathChars
Console.WriteLine(c)
Next c
在代码示例里,要注意Path类在使用的时候没有被实例化。它只是简单地被调用(利用正确的方法),因为它是一个带有静态方法的实例类。此外,代码的最后一部分利用了Path类的InvalidPathChars属性。现在让我们来看看其他可用的属性:
* AltDirectorySeparatorChar:用来分隔路径里目录的备用路径字符。在所有的Windows平台里它是除号(/)。
* DirectorySeparatorChar:用来分隔路径里目录的路径字符。在所有的Windows平台上是反斜杠(/)。
* InvalidPathChars:一组不被允许用在路径里的字符。
* PathSeparator:用来分隔环境变量里路径字符串的字符。在Windows平台上是分号(;)。
* VolumeSeparatorChar:用于将路径同卷分开的字符。在Windows平台上是冒号(:)。
这些属性允许你迅速和很容易地掌握平台的特性。这就让在文件路径里使用正确的分隔符并避免插入不正确的字符变容易了。这些属性能够用下面C#代码访问到,这段代码可以被加到前面的例子里:
Console.WriteLine("Directory separator: {0}.", Path.DirectorySeparatorChar);
Console.WriteLine("Volume separator: {0}.", Path.VolumeSeparatorChar);
下面就是相应的VB.NET代码:
Console.WriteLine("Directory separator: {0}.", Path.DirectorySeparatorChar)
Console.WriteLine("Volume separator: {0}.", Path.VolumeSeparatorChar)
在我的系统里,代码生成了下面的输出:
Directory separator: /.
Volume separator: :.
以上就是用于Windows平台的标准字符。
深入path类的更多相关文章
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- Android -- 自定义View小Demo,关于Path类的使用(一)
1,在我们知道自定义view中onDraw()方法是用于绘制图形的,而Path类则是其中的一个重要的类,如下图效果: 代码也没有什么难度,直接贴出来吧 @Override protected void ...
- Java 7 中 NIO.2 的使用——第一节 Path 类的使用
路径隶属于文件系统,实际上它是存储和组织媒体文件的格式,通常在一块或多块硬盘设备上,以便于非常容易地检索.文件系统可以通过 java.nio.file.FileSystems 这个final 类来访 ...
- 文件夹和文件、Path类、流、序列化
循环访问目录树 参考: http://msdn.microsoft.com/zh-cn/library/bb513869.aspx 循环访问目录树”的意思是在指定的根文件夹下,访问每个嵌套子目录中任意 ...
- C# IO操作(一)Path类的常用方法
1.Path类,查看编译器可知,这个类是个静态的工具类,需要注意的是,这个类是对字符串的操作,与文件无关. 1)ChangeExtension()方法,修改文件的后缀(调用这个方法,如果给第二个参数制 ...
- Path类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- Android开发之Path类使用详解,自绘各种各样的图形!
玩过自定义View的小伙伴都知道,在View的绘制过程中,有一个类叫做Path,Path可以帮助我们实现很多自定义形状的View,特别是配合xfermode属性来使用的时候.OK,那我们今天就来看看P ...
- 对python3中pathlib库的Path类的使用详解
原文连接 https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...
随机推荐
- 0001-20180421-自动化第一章-python基础学习笔记
======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...
- Python 第五阶段 学习记录之---Django 进阶
Model 一.创建表 1.基本结构 字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bi ...
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ...
- 0.2:Game and Art
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 通过上一节的学习,我们对游戏美术和游戏开发已经有了比较基本的了解.那么,该 ...
- Python 匿名变量
匿名变量的使用 calc = lambda x:x*3 print(calc(3)) 注:匿名变量是没有名字的变量 注:使用:lambda 创建.
- python传参是传值还是传引用
在此之前先来看看变量和对象的关系:Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象.而变量是对象的一个引用(又称为名字或者标签),对象的操作都是通过引用来完成的.例 ...
- 剑指offer(38)二叉树的深度
题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 题目分析 树的深度=左子树的深度和右子树深度中最大者+1 代码 fu ...
- SQLServer “无法对数据库'XX' 执行删除,因为它正用于复制”的解决方法
修改数据库某个字段的长度时出现: “无法修改表.无法对 表'dbo.N_Client_content' 执行 删除,因为它正用于复制.” 不能直接对该数据库进行操作,通过alter 的办法来修改,问题 ...
- java程序员面试交流项目经验
粘贴自:https://blog.csdn.net/wangyuxuan_java/article/details/8778211 1:请你介绍一下你自己 这是面试官常问的问题.一般人回答这个问题过于 ...
- 【JS面试向】选择排序、桶排序、冒泡排序和快速排序简介
新年伊始,又到了金三银四的时候了.面对前端越来越多的算法面试题,我简单的整理了一下几种比较常见的数组排序方式,分别介绍其基本原理和优劣势.(ps:才疏学浅,希望大家可以在issues下面指出问题) 选 ...