Я создал следующее консольное приложение .NET, собрал его и скопировал исполняемый файл deepdir.exe
в c:\commandlineapps
, а затем установил переменную окружения для этого каталога, чтобы я мог вызывать эту команду из любого каталога.
Как получить каталог, из которого пользователь набрал команду, например, c:\docs\project1
, а НЕ каталог, в котором находится файл .exe, например, c:\commandlineapps
?Ни одна из следующих работ:
using System;
using System.IO;
using System.Collections.Generic;
using System.Diagnostics;
namespace showimages
{
class Program
{
static void Main(string[] args)
{
var docPath = AppDomain.CurrentDomain.BaseDirectory;
docPath = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
docPath = Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
docPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
docPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
docPath = Environment.CurrentDirectory;
docPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
docPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
docPath = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]);
docPath = System.AppContext.BaseDirectory;
docPath = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
Console.WriteLine(docPath);
}
}
}