2016-03-21 71 views
1

我注意到我的代碼將文件寫入不正確的文件夾,所以我添加了一些日誌記錄,結果令我驚訝。我的代碼:Path.Combine可能的原因省略參數

string savePath = Path.Combine(mapping.Folder, fileMeta.RelativePath, fileMeta.Filename); 
logger.Info(mapping.Folder); 
logger.Info(fileMeta.RelativePath); 
logger.Info(fileMeta.Filename); 
logger.Info("savepath: {0}", savePath); 

這一點,已被寫入日誌:

C:\Sync 
\0100_MACHINES 
Layout US.pdf 
savepath: \0100_MACHINES\Layout US.pdf 

誰能給可能的原因,爲什麼Path.Combine省略了第一個參數,只是結合了第二和第三?也有趣的是,這隻發生在一臺機器上。

回答

0

第二個參數以反斜槓字符開始。這導致Path.Combine之前省略了該部分。通過添加TrimStart解決了這個問題:

string savePath = Path.Combine(mapping.Folder, 
        fileMeta.RelativePath.TrimStart('\\'), 
        fileMeta.Filename.TrimStart('\\'));