如何获取当前工作目录路径c#?

时间:2014-02-12 11:03:56

标签: c# .net visual-studio-2010 c#-4.0

我在项目中有一个光标文件。我在代码中给出了绝对路径,即

F:/r.cur  

问题是这是硬编码路径而且我想要相对路径,这样如果我将我的解决方案移动到另一个系统,代码就不应该生效。

请建议如何设置相对路径

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

7 个答案:

答案 0 :(得分:47)

您可以使用静态Directory类 - 但是当前目录与原始目录不同,原始目录是启动进程的目录。

System.IO.Directory.GetCurrentDirectory();

因此,您可以使用以下命令获取应用程序可执行文件的目录路径:

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

答案 1 :(得分:4)

use Application.StartupPath返回启动应用程序的可执行文件的路径。

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

答案 2 :(得分:2)

您也可以通过System.IO.Directory.GetCurrentDirectory();获得 但它也显示了bin和debug文件夹,如果您不想要这些文件夹,那么您可以使用该代码:

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);
  

输出:

  GetFileName:Mouse.aspx
  GetFileNameWithoutExtension:鼠标
  GetDirectoryName:E:\ abccom \ Cat

快乐编码:)

答案 3 :(得分:0)

您可以使用System.IO.Directory.GetCurrentDirectory()获取当前工作目录。它将返回您当前的可执行路径。

由于

答案 4 :(得分:0)

Application.StartupPath应该为您提供运行应用程序的应用程序路径。我会在应用程序文件夹下创建一个目录结构。例如,如果“C:\ Program Files \ MyApp”是我的应用程序文件夹,那么我将在其下创建一个名为cursors的文件夹(C:\ Program Files \ MyApp \ Cursors“)并将所有游标放在此文件夹中。

答案 5 :(得分:0)

// in return of render method. It will display data from state after api call {this.state.data && this.state.data.map(vehicle => ( <h1>{vehicle.make}</h1> ))} 在启动时会为您提供完整的路径。

此后,如果您* 真的想在开发过程中找到 (作为您在其他答案中的评论) *,请首先使用{{1} }。

答案 6 :(得分:0)

这次聚会晚了,但是当我参加单元测试时,这对我有用。

var currentDirectory = Directory.GetCurrentDirectory();

如果您需要项目的根目录,而不是bin目录,请执行以下操作:

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

如果您在网站上,情况会有所不同。