How to get current working directory path c#?

C#.NetVisual Studio-2010C# 4.0

C# Problem Overview


I have a cursor file in project. I have given the absolute path in code i.e

F:/r.cur  

the problem is this is hard-coded path And i Want relative path so that if i move my solution to another system the code should not effect.

please suggest how to set relative path

//current code i am using 
 p.Cursor = new Cursor("F:/r.cur");

C# Solutions


Solution 1 - C#

You can use static Directory class - however current directory is distinct from the original directory, which is the one from which the process was started.

System.IO.Directory.GetCurrentDirectory();

So you can use the following to get the directory path of the application executable:

System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);

Solution 2 - C#

use Application.StartupPath returns path for the executable file that started the application.

        string pathCur = Path.Combine(Application.StartupPath, @"..\..\r.cur");
        Cursor = new Cursor(pathCur);

Solution 3 - C#

You can also get by
System.IO.Directory.GetCurrentDirectory();
but it shows bin and debug folder also, if you don't want these folder so you can use that code :

string page = "E:\abccom\Cat\Mouse.aspx"

string name = Path.GetFileName(page );
string nameKey = Path.GetFileNameWithoutExtension(page );
string directory = Path.GetDirectoryName(page );

Console.WriteLine("{0}, {1}, {2}, {3}",
page, name, nameKey, directory);

> Output:

> GetFileName:                                        Mouse.aspx
> GetFileNameWithoutExtension:           Mouse
> GetDirectoryName:                              E:\abccom\Cat

Happy Coding :)

Solution 4 - C#

Super late to this party, but this works for me when I'm in unit tests.

var currentDirectory = Directory.GetCurrentDirectory();

If you need the root of the project, and not the bin directory then this:

var currentDirectory = Directory.GetCurrentDirectory();
var basePath = currentDirectory.Split(new string[] { "\\bin" }, StringSplitOptions.None)[0];

It'll be different if you're on a website.

Solution 5 - C#

You can get the current working directory by using System.IO.Directory.GetCurrentDirectory(). it will return your current executable path.

Thanks

Solution 6 - C#

Application.StartupPath should give you application path from where your application is running. I would create a directory structure under application folder. e.g If "C:\Program Files\MyApp" is my application folder, then I would create a folder named cursors under it (C:\Program Files\MyApp\Cursors") and put all cursors within this folder.

Solution 7 - C#

System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName) at startup will give you the full path.

After that, if you * really want to find something during development (as your comments in other answers point) *, first find the path using FileInfo(thestringwithfilenamepath).Directory.Name.

Solution 8 - C#

How about : Environment.CurrentDirectory

See more at : https://docs.microsoft.com/en-us/dotnet/api/system.environment?view=net-5.0

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionyogeshkmrsoni01View Question on Stackoverflow
Solution 1 - C#Pavel CermakView Answer on Stackoverflow
Solution 2 - C#BRAHIM KamelView Answer on Stackoverflow
Solution 3 - C#Alam UsmaniView Answer on Stackoverflow
Solution 4 - C#Don RollingView Answer on Stackoverflow
Solution 5 - C#SrikanthView Answer on Stackoverflow
Solution 6 - C#SandeepView Answer on Stackoverflow
Solution 7 - C#ilias iliadisView Answer on Stackoverflow
Solution 8 - C#raddevusView Answer on Stackoverflow