var actual = Path.Combine("c:", "filename");
var expected = @"c:\filename";
Assert.AreEqual(expected, actual);
RisultatoPerché Path.Combine non aggiunge Path.DirectorySeparatorChar dopo il designatore dell'unità?
{Assert.AreEqual failed. Expected:<c:\filename>. Actual:<c:filename>.
Perché?
Si tratta di una presa-over da DOS 1.x IIRC ... :-) –
Freaky ... questo è poco intuitivo. Qual è il modo per ottenere il valore atteso? 'Path.Combine (drive + @" \ ", path)'? – Gishu
@Gishu - Non è intuitivo perché il modo in cui i percorsi funzionano nel sistema operativo Windows non è così semplice come si potrebbe pensare. Vedere l'articolo MSDN a cui mi sono collegato per trovare una descrizione di come funzionano i percorsi di Windows. Path.Combine() combina due percorsi. Non utilizzerei la concatenazione di stringhe nel modo in cui mi suggerisci perché ciò sconfigge l'intero scopo di Path.Combine(). AFAIC dovresti fare attenzione nel modo in cui specifichi i tuoi percorsi. Se intendi "C: \" usa quello, se OTOH intendi "C:" (che è diverso ma altrettanto valido), allora usa quello. –