Path.combine to combine two paths and backslash in second parameter
Hi,
system.IO.Path comes with many good function to work with the File system. some of them are ChangeExtension, GetDirectoryName, GetExtension, GetFileNameWithoutExtension, IsPathRooted etc.
The system.IO.Path.Combine is also include as a function in system.IO.Path to combine two paths provided to it. A few days back I was working with it to add paths provided by user. But I started getting erros where by sometimes the path would not be combined and only the second provided path was returned. After doing some research on this I got to the root of the cause.
The problem was only occuring when the second path provided in the method was starting with "\".
To make my understanding more accurate I made a small console applictaion to show what would be the result in differenct scenarios. Below are the situation and the output I got for them.
Console.WriteLine(System.IO.Path.Combine(@"D:\V\", @"S\test1.doc"));
Console Output - D:\V\S\test1.doc
Console.WriteLine(System.IO.Path.Combine(@"D:\V\", @"\S\test1.doc"));
Console Output - \S\test1.doc
Console.WriteLine(System.IO.Path.Combine(@"D:\V", @"S\test1.doc"));
Console Output - D:\V\S\test1.doc
Console.WriteLine(System.IO.Path.Combine(@"D:\V", @"\S\test1.doc"));
Console Output - \S\test1.doc
As we can see from the above results whenever the second path starts with "\" the result only includes the first path.
Hence we should be cautions when we are using the Path.Combine function to combine two function.
Vikram