2013-03-14 58 views
0

非法字符我有一個​​FTP路徑是這樣的:
ftp://my|user|name:[email protected]/Test/file.txt在Path.Combine

我想用兩個函數從Path
1. Path.GetDirectoryName
2. Path.Combine

都返回「路徑中的非法字符」。
解決此問題的最佳解決方案是什麼?我需要獲取目錄,我需要將它與不同的文件網址結合起來。

+0

我想'Path'用於在磁盤上的文件路徑(本地計算機),而不是URI的。 – mpen 2013-03-14 20:55:31

回答

4

使用Uri類來提取Path部分,比使用Path類來操縱它。

使用UriBuilder構建它。

var fullPath = 
    new Uri(@"ftp://my|user|name:[email protected]/Test/file.txt") 
    .AbsolutePath; 
+0

感謝您的回答。但是你的代碼返回'/ Test/file.txt'而不是'ftp:// my | user | name:mypassword @ example.com/Test /' – user194076 2013-03-14 21:01:13

+0

@ user194076,因爲它*是路徑*。我想你還想要別的東西(即你的「路徑」的定義不是來自[Uri RFC](www.ietf.org/rfc/rfc3986.txt))。我相信我所提到的班級應該讓你以安全的方式做你想做的事。 – 2013-03-14 23:44:08

相關問題