Как получить текущий путь к каталогу С#?
У меня есть файл курсора в проекте. Я дал абсолютный путь в коде i.e
F:/r.cur
проблема в том, что это жестко закодированный путь. И я хочу относительный путь, чтобы, если я перемещаю свое решение в другую систему, код не должен влиять.
предложите, как установить относительный путь
//current code i am using
p.Cursor = new Cursor("F:/r.cur");
Ответы
Ответ 1
Вы можете использовать статический класс Directory
, однако текущий каталог отличается от исходного каталога, который является тем, из которого был запущен процесс.
System.IO.Directory.GetCurrentDirectory();
Таким образом, вы можете использовать следующее, чтобы получить путь к каталогу исполняемого приложения:
System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);
Ответ 2
использовать Application.StartupPath возвращает путь к исполняемому файлу, который запустил приложение.
string pathCur = Path.Combine(Application.StartupPath, @"..\..\r.cur");
Cursor = new Cursor(pathCur);
Ответ 3
Вы также можете перейти на 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
Счастливое кодирование:)
Ответ 4
Вы можете получить текущий рабочий каталог, используя System.IO.Directory.GetCurrentDirectory()
. он вернет ваш текущий исполняемый путь.
Спасибо
Ответ 5
Application.StartupPath должен предоставить вам путь приложения, из которого выполняется ваше приложение. Я бы создал структуру каталога в папке приложения. Например, если "C:\Program Files\MyApp" - это папка моего приложения, я бы создал папку под ним cursors (C:\Program Files\MyApp\Cursors) и поместил все курсоры в эту папку.