В консольном приложении .NET как получить путь к командной строке, в которой пользователь набрал команду? - PullRequest
1 голос
/ 23 мая 2019

Я создал следующее консольное приложение .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);
        }
    }
}       

1 Ответ

1 голос
/ 23 мая 2019

Directory.GetCurrentDirectory () будет делать то, что вам нужно (получить текущий рабочий каталог).

...