我有一個用C#編寫的.NET 3.5 Web應用程序,它執行一些包含文件路徑的URL重寫,並且遇到了問題。當我打電話給string.Split('/')
時,它匹配'/'和'\'字符。那是......應該發生的嗎?我認爲它會注意到ASCII值不同並跳過它,但看起來我錯了。C#string.Split()匹配兩個斜線?
// url = 'someserver.com/user/token/files\subdir\file.jpg
string[] buffer = url.Split('/');
上面的代碼給出了在它一個string[]
6個元素...這似乎計數器直觀。有沒有辦法強制Split()
只匹配正斜槓?現在我很幸運,因爲URL的末尾出現了違規的斜槓,我可以將string[]
中的其他元素連接起來,但對於我們正在做的事情而言,這是很多工作,而不是一個好的解決方案到底層的問題。
以前有誰碰到過這個?有一個簡單的答案?我很感激!
更多的代碼:
url = HttpContext.Current.Request.Path.Replace("http://", "");
string[] buffer = url.Split('/');
原來,Request的和Request.RawUrl都改變了我的斜線,這是荒謬的。所以,有時間再研究一下,弄清楚如何從不會破壞我的格式的函數獲取URL。感謝大家一起玩我的瘋狂,對不起,這是一個誤導性的問題!
url是一個字符串,一個uri還是一個路徑?因爲在窗口中,在一條路徑中,我認爲'/'和'\'字符可以互換使用,但有時只能使用。 – mmr 2010-04-05 18:22:17
我試圖重現你的問題,我一直無法。你能創建一個簡短但完整的程序來證明問題嗎? – 2010-04-05 18:30:13