我有一个看起来像这样的ftp路径:
ftp://my|user|name:mypassword@example.com/Test/file.txt
我正在尝试使用Path
中的两个函数:
1. Path.GetDirectoryName
2. Path.Combine
两者都返回“路径中的非法角色” 解决这个问题的最佳解决方案是什么?我需要获取目录,我需要将它与不同的文件URL结合起来。
答案 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部分。