C# string replace does not actually replace the value in the string
The problem is that strings are immutable. The methods replace, substring, etc. do not change the string itself. They create a new string and replace it. So for the above code to be correct, it should be
path1 = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
Or just
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
if another variable is not needed.
This answer is also a reminder that strings are immutable. Any change you make to them will in fact create a new string. So keep that in mind with everything that involves strings, including memory management. As stated in the documentation here.
String objects are immutable: they cannot be changed after they have been created. All of the String methods and C# operators that appear to modify a string actually return the results in a new string object
The path.Replace
method actually returns a string
. You should do the following:
path = path.Replace("firstString", "secondString");
String.Replace(string,string) returns string.
So, save the new path in some string variable.
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");