web-dev-qa-db-fra.com

Comment obtenir le chemin de répertoire de travail actuel c #?

J'ai un fichier de curseur dans le projet. J'ai donné le chemin absolu dans le code i.e

F:/r.cur  

le problème est que c'est un chemin codé en dur Et je veux un chemin relatif de sorte que si je déplace ma solution vers un autre système, le code ne devrait pas avoir d'effet.

veuillez suggérer comment définir un chemin relatif

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

Vous pouvez utiliser static Directory class. Toutefois, le répertoire en cours est distinct du répertoire d'origine, celui depuis lequel le processus a été démarré.

System.IO.Directory.GetCurrentDirectory();

Vous pouvez donc utiliser ce qui suit pour obtenir le chemin du répertoire de l'exécutable de l'application:

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

use Application.StartupPath renvoie le chemin du fichier exécutable ayant lancé l'application.

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

Vous pouvez aussi vous débrouiller
System.IO.Directory.GetCurrentDirectory();
mais il affiche également le dossier bin et le dossier de débogage, si vous ne souhaitez pas utiliser ce dossier pour pouvoir utiliser ce 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);

Sortie:

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

Happy Coding:)

3
Alam Usmani

Vous pouvez obtenir le répertoire de travail actuel en utilisant System.IO.Directory.GetCurrentDirectory(). il retournera votre chemin exécutable actuel.

Merci

0
Srikanth

Application.StartupPath devrait vous indiquer le chemin d'accès à partir duquel votre application est en cours d'exécution. Je créerais une structure de répertoire sous le dossier de l'application. Si, par exemple, "C:\Program Files\MyApp" est mon dossier d’application, je créerais un dossier nommé curseurs (C:\Program Files\MyApp\Cursors ") et placerais tous les curseurs dans ce dossier.

0
Sandeep

System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName) au démarrage vous donnera le chemin complet.

Après cela, si vous * voulez vraiment trouver quelque chose pendant le développement (comme vos commentaires dans d'autres réponses) *, d'abord trouvez le chemin en utilisant FileInfo(thestringwithfilenamepath).Directory.Name.

0
ilias iliadis