我在项目中有一个光标文件。我在代码中给出了绝对路径,即
F:/r.cur
问题是这是硬编码路径而且我想要相对路径,这样如果我将我的解决方案移动到另一个系统,代码就不应该生效。
请建议如何设置相对路径
//current code i am using
p.Cursor = new Cursor("F:/r.cur");
答案 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];
如果您在网站上,情况会有所不同。