Can't get correct path location to a folder in project












0














I created a folder inside my project like this:



enter image description here



And the path I get in windows explorer is



D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots


I need to get this path in my code, however I don't want to hard-code it so I tried to get the relative path like this:



string finalpath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"ErrorScreenshots" + screenshotName);
string localpath = new Uri(finalpath).LocalPath;


However, the path I get while debugging looks like this:



D:\Projekti\SeleniumTesting\SeleniumTesting\bin\Debug\ErrorScreenshots\Screenshot_13112018


Any ideas on how could I get the "D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots" path?










share|improve this question


















  • 2




    If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
    – David
    Nov 13 '18 at 10:43






  • 1




    Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
    – elgonzo
    Nov 13 '18 at 10:44












  • @elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
    – Bernard Polman
    Nov 13 '18 at 10:46










  • Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
    – elgonzo
    Nov 13 '18 at 10:47












  • Will do, thank you both.
    – Bernard Polman
    Nov 13 '18 at 10:48
















0














I created a folder inside my project like this:



enter image description here



And the path I get in windows explorer is



D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots


I need to get this path in my code, however I don't want to hard-code it so I tried to get the relative path like this:



string finalpath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"ErrorScreenshots" + screenshotName);
string localpath = new Uri(finalpath).LocalPath;


However, the path I get while debugging looks like this:



D:\Projekti\SeleniumTesting\SeleniumTesting\bin\Debug\ErrorScreenshots\Screenshot_13112018


Any ideas on how could I get the "D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots" path?










share|improve this question


















  • 2




    If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
    – David
    Nov 13 '18 at 10:43






  • 1




    Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
    – elgonzo
    Nov 13 '18 at 10:44












  • @elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
    – Bernard Polman
    Nov 13 '18 at 10:46










  • Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
    – elgonzo
    Nov 13 '18 at 10:47












  • Will do, thank you both.
    – Bernard Polman
    Nov 13 '18 at 10:48














0












0








0


0





I created a folder inside my project like this:



enter image description here



And the path I get in windows explorer is



D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots


I need to get this path in my code, however I don't want to hard-code it so I tried to get the relative path like this:



string finalpath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"ErrorScreenshots" + screenshotName);
string localpath = new Uri(finalpath).LocalPath;


However, the path I get while debugging looks like this:



D:\Projekti\SeleniumTesting\SeleniumTesting\bin\Debug\ErrorScreenshots\Screenshot_13112018


Any ideas on how could I get the "D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots" path?










share|improve this question













I created a folder inside my project like this:



enter image description here



And the path I get in windows explorer is



D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots


I need to get this path in my code, however I don't want to hard-code it so I tried to get the relative path like this:



string finalpath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"ErrorScreenshots" + screenshotName);
string localpath = new Uri(finalpath).LocalPath;


However, the path I get while debugging looks like this:



D:\Projekti\SeleniumTesting\SeleniumTesting\bin\Debug\ErrorScreenshots\Screenshot_13112018


Any ideas on how could I get the "D:ProjektiSeleniumTestingSeleniumTestingErrorScreenshots" path?







c# directory






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 10:40









Bernard PolmanBernard Polman

11819




11819








  • 2




    If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
    – David
    Nov 13 '18 at 10:43






  • 1




    Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
    – elgonzo
    Nov 13 '18 at 10:44












  • @elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
    – Bernard Polman
    Nov 13 '18 at 10:46










  • Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
    – elgonzo
    Nov 13 '18 at 10:47












  • Will do, thank you both.
    – Bernard Polman
    Nov 13 '18 at 10:48














  • 2




    If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
    – David
    Nov 13 '18 at 10:43






  • 1




    Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
    – elgonzo
    Nov 13 '18 at 10:44












  • @elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
    – Bernard Polman
    Nov 13 '18 at 10:46










  • Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
    – elgonzo
    Nov 13 '18 at 10:47












  • Will do, thank you both.
    – Bernard Polman
    Nov 13 '18 at 10:48








2




2




If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
– David
Nov 13 '18 at 10:43




If the path will always be two directory levels up from the executing assembly then you can use "...." in your Path.Combine argument list. Otherwise I would probably recommend storing the path in a config value for the application so you can easily change it any time you need to change the path (such as in a different executing environment).
– David
Nov 13 '18 at 10:43




1




1




Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
– elgonzo
Nov 13 '18 at 10:44






Why do you need the path relative? Do you want to distribute the ErrorScreenshots folder together with your program and execute it on different computers? (Since it is only an empty folder, why add it to the project? You could just let your program create this folder if it is not found at the expected/desired location.)
– elgonzo
Nov 13 '18 at 10:44














@elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
– Bernard Polman
Nov 13 '18 at 10:46




@elgonzo This is a project with Selenium tests so the project will in future automatically run tests from a server, so the project will be ran on a server PC.
– Bernard Polman
Nov 13 '18 at 10:46












Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
– elgonzo
Nov 13 '18 at 10:47






Okay, i understand. Then make the folder configurable, as David mentioned. Having a hardcoded path (no matter whether it is relative or absolute path) has the potential of making things more complicated with regard to server setup...
– elgonzo
Nov 13 '18 at 10:47














Will do, thank you both.
– Bernard Polman
Nov 13 '18 at 10:48




Will do, thank you both.
– Bernard Polman
Nov 13 '18 at 10:48












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53279183%2fcant-get-correct-path-location-to-a-folder-in-project%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53279183%2fcant-get-correct-path-location-to-a-folder-in-project%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Bressuire

Vorschmack

Quarantine