2009-10-30 26 views
3
string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath; 
string exeDir = Path.GetDirectoryName(exeFile); 
string fileName = Path.Combine(exeDir, @"..\..\xml\SalesOrderXMLData.csv.xml"); 

你好,
上面的代碼工作,如果該項目是在,例如,Path.Combine中傳入參數中的空格?

C:\代碼\

但如果它在

C:\ Documents and Settings \ Naim \ My Documents ..

如果我有字符串,我會在需要時使用轉義字符,但在這種情況下,我不知道如何解決此問題。

更新:結果文件名=「d:\納伊姆\我的%20Documents \視覺%20Studio%202008 \項目\ XML_Gen \ XML_Gen \ BIN \調試\ .. \ .. \ XML \ SalesOrderXMLData.csv.xml 「 任何幫助表示讚賞。
謝謝

+0

什麼是你得到的結果呢?我從來沒有遇到與Path類和空間有關的問題... – nitzmahone

回答

0

下面的代碼工作,但我不知道爲什麼上述不工作。改變AbsolutePath了localPath

string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).LocalPath; 
string exeDir = Path.GetDirectoryName(exeFile); 
string fileName = Path.Combine(exeDir, @"..\..\xml\SalesOrderXMLData.csv.xml"); 
0

這可能是URI。使用Assembly.GetEntryAssembly()。位置,並將其直接傳遞給Path.GetDirectoryName()。