2014-02-12 3 views
21

У меня есть файл курсора в проекте. Я дал полный путь в коде т.е.Как получить текущий путь к каталогу C#?

F:/r.cur 

проблема это жестко закодирован путем, и я хочу относительный путь, так что если я двигаю мое решение в другую систему коды не должны влиять.

пожалуйста, подсказывает, как установить относительный путь

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

поместить его в папку ресурсов, и ссылаться на него, как Properties.Reources.xxx – David

+0

У вас пытался упаковать r.cur в каталог проекта? – hbsrud

+0

@ Давид, да, я пробовал это, поставив файл r.cur в папку с регрессом, но не отображая его в коде. его единственный показ .jpg Тип файлов – yogeshkmrsoni01

ответ

31

вы можете использовать статический Directory класс - однако текущий каталог отличается от оригинального каталога, который является один из которых был начат процесс

System.IO.Directory.GetCurrentDirectory(); 

Таким образом, вы можете использовать следующий, чтобы получить путь к исполняемому файлу приложения. :

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

Вышеприведенный код dosen Не работает в WPF, так как у него нет пространства имен System.Windows.Forms. Используйте вместо этого System.IO.Path.GetDirectoryName (System.Diagnostics.Process.GetCurrentProcess(). MainModule.FileName) –

3

использования Application.StartupPath возвращает путь к исполняемому файлу, который начал приложение.

+0

Возвращение C: \ Users \ yogeshkmrsoni \ Documents \ Visual Studio 2010 \ Projects \ ProjectName \ bin \ Release; но я хочу скопировать файл курсора в C: \ Users \ yogeshkmrsoni \ Documents \ Visual Studio 2010 \ Projects \ ProjectName \ r.cur, может предложить любой другой способ – yogeshkmrsoni01

+0

Я обновил свой ответ, посмотри сейчас –

0

Вы можете получить текущий рабочий каталог, используя System.IO.Directory.GetCurrentDirectory(). он вернет ваш текущий исполняемый путь.

Благодаря

0

Application.StartupPath должен дать вам путь к приложению, из которого ваше приложение работает. Я бы создал структуру каталога в папке приложения. Например, если «C: \ Program Files \ MyApp» является моей папкой приложения, тогда я бы создал под ним папку с именем cursors (C: \ Program Files \ MyApp \ Cursors) и поместил все курсоры в эту папку.

2

Вы можете: РБП получить от
System.IO.Directory.GetCurrentDirectory();
, но он показывает бен и отладки папку также, если вы не хотите, чтобы эти папки, так что вы можете использовать этот код:

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:                     Mouse
GetDirectoryName:                                                           E: \ abccom \ Cat

Днем Coding :)

Смежные вопросы