2016-03-21 27 views
1

Kodumun dosyaları yanlış klasörlere yazdığını fark ettim, bu yüzden bir miktar kayıt ekledim ve sonuç beni şaşırtıyor. Kodum:Olası Sebep nedeni. Bir parametrelerin ihmal edilmesi

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); 

Bu ne giriş yapmak için yazılmıştır edilir: Path.Combine ilk argüman atlar neden

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

kimse, olası neden sunabilir ve sadece ikinci ve üçüncü birleştirir? Komik olan şey, sadece bir makinede gerçekleşti.

cevap

0

İkinci parametre ters eğik çizgi karakteri ile başlar. Bu, daha önce parçayı çıkarmak için Path.Combine neden oldu. TrimStart ekleyerek bu sorunu çözüldü: (path2 bir ayırıcı karakter veya bir tahrik şartname ile başlamıyorsa, örneğin) path2 bir kök içermiyorsa

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