东莞网站制作公司,公司网站建设是什么意思,惠州网站设计培训,邢台移动网站设计System.IO.Path.Combine 简单来说#xff0c;就是合并两个路径字符串。 比如下面这个调用#xff0c; Path.Combine(“C:\11”,“aa.txt”)
返回的字符串路径为#xff1a; C:\11\aa.txt
这个方法的声明如下#xff1a; public static string Combine ( string path1, st…System.IO.Path.Combine 简单来说就是合并两个路径字符串。 比如下面这个调用 Path.Combine(“C:\11”,“aa.txt”)
返回的字符串路径为 C:\11\aa.txt
这个方法的声明如下 public static string Combine ( string path1, string path2 )
我们在合并一些目录的时候它的两个参数有些特殊限制下面我们就来依次看这些特殊限制
1、如果其中任意一个参数为 null 会抛出异常 An unhandled exception of type ‘System.ArgumentNullException’ occurred in mscorlib.dll Additional information: Value cannot be null.
2、如果指定的路径其中一个是零长度字符串则该方法返回另一个路径。当然两个都是零长度字符串则返回的就是 string.Empty ;
3、如果 path2 包含绝对路径则该方法直接返回 path2。 比如 string tmp Path.Combine(“C:\11”, “D:\aa.txt”); tmp “D:\aa.txt” string tmp Path.Combine(C:\11, \aa.txt); tmp \aa.txt
4、 path2 不应以 \ 和 / 开头 如果是这个两个字符开头的则返回 path2 。 比如以下代码: string p1 “C:\aa\”; string p2 “C:\aa”;
string p12 “\p12”; string p13 “\p13\”; string p15 “/p13/”;
Console.WriteLine(Path.Combine(p1, p12)); Console.WriteLine(Path.Combine(p1, p13)); Console.WriteLine(Path.Combine(p1, p15)); Console.WriteLine(Path.Combine(p2, p12)); Console.WriteLine(Path.Combine(p2, p13)); Console.WriteLine(Path.Combine(p2, p15)); 依次显示的是 \p12 \p13 /p13/ \p12 \p13 /p13/
该函数工作原理
如果 path1 不是一个驱动器引用即不是C:“或D:”而且不是以 DirectorySeparatorChar、AltDirectorySeparatorChar 或 VolumeSeparatorChar 中定义的有效分隔符结束则在串联前将 DirectorySeparatorChar 追加到 path1 中。
如果 path2 不包括根例如如果 path2 没有以分隔符或驱动器规格起始则结果是两个路径的串联具有介于其间的分隔符。如果 path2 包括根则返回 path2。
由于有空白时不进行参数分析如果 path2 为 c:\ 则将其追加到 path1而不是仅返回 path2。
不是目录和文件名的所有无效字符都被 Combine 方法解释为不可接受的因为您可以将这些字符用于搜索通配符。例如尽管 Path.Combine(“c:\”, “*.txt”) 可能是无效的如果您要根据它创建一个文件但它作为搜索字符串是有效的。因此 Combine 方法成功解释它。
Path.DirectorySeparatorChar 字段 提供平台特定的字符该字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。 该字段的值在 Unix 上为斜杠/在 Windows 和 Macintosh 操作系统上为反斜杠。
Path.AltDirectorySeparatorChar 字段 提供平台特定的替换字符该替换字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。 该字段的值在 Unix 上为反斜杠在 Windows 和 Macintosh 操作系统上为斜杠/。
Path.VolumeSeparatorChar 字段 提供平台特定的卷分隔符。 该字段的值在 Windows 和 Macintosh 上为冒号:在 Unix 操作系统上为斜杠/。