Can't get correct path location to a folder in project
I created a folder inside my project like this:
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
add a comment |
I created a folder inside my project like this:
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
2
If the path will always be two directory levels up from the executing assembly then you can use "...." in yourPath.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
add a comment |
I created a folder inside my project like this:
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
I created a folder inside my project like this:
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
c# directory
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 yourPath.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
add a comment |
2
If the path will always be two directory levels up from the executing assembly then you can use "...." in yourPath.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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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