c# - Path.Combine 背后究竟发生了什么

标签 c# asp.net path

我有:

string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");

两者给出相同的结果:

shr​​ee\file1.txt

Path.Combine 背后究竟发生了什么?这是执行此操作的最佳编码实践。请澄清我的看法。谢谢。

最佳答案

如果第一个路径(shree 或 shree\\)没有以有效的分隔符结尾(例如 DirectorySeparatorChar),它会在连接之前附加到路径。

所以

string path1 = "shree";
string path2 = "file1.txt";
string combined = Path.Combine(path1, path2);

将生成“shree\file1.txt”,而

string path1 = "shree\\";

已经包含一个有效的分隔符,所以 Combine 方法不会再添加一个。

在这里,您在字符串变量 (path1) 中键入了两个斜杠。第一个只是作为第二个的转义字符。这与使用逐字字符串文字相同。

string path1 = @"shree\";

可以在 MSDN 上找到有关 Combine 方法的更多信息:

http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

关于c# - Path.Combine 背后究竟发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8983285/

相关文章:

linux - 在 Ubuntu 中将目录添加到 PATH

c# - 为什么在从表中选择值时排除 NULL 值

c# - 有没有办法在机器上没有word的情况下动态生成word文档

c# - 从后面的代码调用 javascript 函数

asp.net - 如何将 Windows 用户(而不是服务帐户)登录到数据库?

c# - 每当在 TreeView 中添加新节点时创建事件处理程序

javascript - 如何使用 Javascript 从 fileupload 获取完整路径

c# - Request.QueryString 和 Request.ServerVariables ["QUERY_STRING"之间有什么区别]

c# - ASP.NET Core - 自定义 AspNetCore.Identity 实现不起作用

c - 我如何修改此代码,以便打印从 A 点到 B 点所需路径的输出