Path.Combine中的非法字符

时间:2013-03-14 20:51:59

标签: c# asp.net .net path ftp

我有一个看起来像这样的ftp路径:
ftp://my|user|name:mypassword@example.com/Test/file.txt

我正在尝试使用Path中的两个函数:
1. Path.GetDirectoryName
2. Path.Combine

两者都返回“路径中的非法角色” 解决这个问题的最佳解决方案是什么?我需要获取目录,我需要将它与不同的文件URL结合起来。

2 个答案:

答案 0 :(得分:4)

使用Uri类提取路径部分,而不是使用Path类来操作它。

使用UriBuilder重新构建它。

var fullPath = 
  new Uri(@"ftp://my|user|name:mypassword@example.com/Test/file.txt")
     .AbsolutePath;

答案 1 :(得分:0)

要从uri中提取路径和查询字符串,您可以使用new Uri(someString).PathAndQuery,如回答Get url parts without host

中所示

要合并Url或Uri,您可以使用答案https://stackoverflow.com/a/23399048/3481183

该答案中描述的Uri.Combine函数也用于组合ftp部分。

enter image description here