loco
loco

Reputation: 321

Read text file from relative path within project

I am creating a unit test which works using the following exact path:

string path = @"/Users/{username}/Coding/computershare/ChallengeSampleDataSet1.txt";

I read the text from the file by passing this path

string pricesFromFile = System.IO.File.ReadAllText(path);

However, I do not want to hardcode the complete local file path - I want to use the relative path in the project directory.

Therefore I tried the below using other articles on StackOverflow:

string path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "ChallengeSampleDataSet1.txt");

But file is not found. How can I fix this so that I'm able to load the file when running the app from another machine?

Edit: the error in console using the second method is

System.IO.FileNotFoundException : Could not find file '/Users/{username}/Coding/computershare/bin/Debug/net5.0/ChallengeSampleDataSet1.txt'.

enter image description here

Upvotes: 1

Views: 3235

Answers (1)

Cornelius J. van Dyk
Cornelius J. van Dyk

Reputation: 728

This should do the trick:

string path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\", "ChallengeSampleDataSet1.txt");

Note the direction of the slash (\)

Since the error is "/Users/{username}/Coding/computershare/bin/Debug/net5.0/ChallengeSampleDataSet1.txt" it indicates that your base directory is /bin/debug/net5.0 down from the root of the code. By double dotting up three levels, you'll be able to find the file in question.

Upvotes: 2

Related Questions