非法字符我有一個FTP路徑是這樣的:
ftp://my|user|name:[email protected]/Test/file.txt在Path.Combine
我想用兩個函數從Path
:
1. Path.GetDirectoryName
2. Path.Combine
都返回「路徑中的非法字符」。
解決此問題的最佳解決方案是什麼?我需要獲取目錄,我需要將它與不同的文件網址結合起來。
非法字符我有一個FTP路徑是這樣的:
ftp://my|user|name:[email protected]/Test/file.txt在Path.Combine
我想用兩個函數從Path
:
1. Path.GetDirectoryName
2. Path.Combine
都返回「路徑中的非法字符」。
解決此問題的最佳解決方案是什麼?我需要獲取目錄,我需要將它與不同的文件網址結合起來。
使用Uri
類來提取Path部分,比使用Path
類來操縱它。
使用UriBuilder
構建它。
var fullPath =
new Uri(@"ftp://my|user|name:[email protected]/Test/file.txt")
.AbsolutePath;
感謝您的回答。但是你的代碼返回'/ Test/file.txt'而不是'ftp:// my | user | name:mypassword @ example.com/Test /' – user194076 2013-03-14 21:01:13
@ user194076,因爲它*是路徑*。我想你還想要別的東西(即你的「路徑」的定義不是來自[Uri RFC](www.ietf.org/rfc/rfc3986.txt))。我相信我所提到的班級應該讓你以安全的方式做你想做的事。 – 2013-03-14 23:44:08
從URI中提取的路徑和查詢字符串,你可以使用new Uri(someString).PathAndQuery
在回答Get url parts without host
要結合URL或URI看到,你可以使用答案https://stackoverflow.com/a/23399048/3481183
的Uri.Combine
功能在回答這個問題時,測試了組合ftp部分。
我想'Path'用於在磁盤上的文件路徑(本地計算機),而不是URI的。 – mpen 2013-03-14 20:55:31