J'ai essayé d'obtenir le répertoire de l'application console en utilisant le code ci-dessous,
Assembly.GetExecutingAssembly().Location
mais celui-ci me donne où réside l'assemblage. Cela peut être différent de l'endroit où j'ai exécuté l'application.
Mon application console analyse les journaux sans paramètres. Il faut aller au logs/
dossier à l'intérieur du dossier de l'exécutable ou si je lui donne un chemin d'accès à logs/
il l’analyse.
Utilisation Environment.CurrentDirectory
.
Obtient ou définit le chemin complet du répertoire de travail en cours.
(MSDN Propriété Environment.CurrentDirectory )
string logsDirectory = Path.Combine(Environment.CurrentDirectory, "logs");
Si votre application est en cours d'exécution dans c:\Foo\Bar logsDirectory
pointera vers c:\Foo\Bar\logs .
Utilisez ceci :
System.Reflection.Assembly.GetExecutingAssembly().Location
Combinez cela avec
System.IO.Path.GetDirectoryName if all you want is the directory.
Manière la plus sûre:
string temp = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
Voici une méthode de journalisation simple
using System.IO;
private static void logWrite(string filename, string text)
{
string filepath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + filename;
using (StreamWriter sw = File.AppendText(filepath))
{
sw.WriteLine(text);
Console.WriteLine(text);
}
}
Usage:
logWrite("Log.txt", "Test");