Получить имя исполняемого приложения [закрыт]

104
10 августа 2019, 10:00

Пишу небольшое приложение которое работает с названием файла, но возникла сложность я не могу найти название исполняемого файла, многое перепробовал например:

1. string exePath = Path.GetDirectoryName( Application.ExecutablePath);
2. string patch = System.Windows.Forms.Application.ExecutablePath;
3. Application.StartupPath

Завершаются ошибками в компиляции.

using System;  
using System.IO;  
using System.Net;  
using System.Text;  
namespace Examples.System.Net  
{  
    public class WebRequestGetExample  
    {  
        public static void Main()  
        {  
            WebRequest request = WebRequest.Create("http://*******/indata.php?nt=2");  
            request.Credentials = CredentialCache.DefaultCredentials;  
            WebResponse response = request.GetResponse();

            //string exePath = Path.GetDirectoryName(Application.ExecutablePath);
            //string patch = System.Windows.Forms.Application.ExecutablePath;
            //Console.WriteLine(Application.StartupPath);
            var path = System.Reflection.Assembly.GetEntryAssembly().Location;
            response.Close();  
        }  
    }  
} 

в итоге мне нужно indata.php?nt=(название файла)

Answer 1

У тебя namespace какой та странный. Попробуй ка вот что

using System;  
using System.IO;  
using System.Net;  
using System.Text;  
using ReflactionNamespace = System.Reflection;
namespace Examples.System.Net  
{  
    public class WebRequestGetExample  
    {  
        public static void Main()  
        {  
            WebRequest request = WebRequest.Create("http://*******/indata.php?nt=2");  
            request.Credentials = CredentialCache.DefaultCredentials;  
            WebResponse response = request.GetResponse();
            //string exePath = Path.GetDirectoryName(Application.ExecutablePath);
            //string patch = System.Windows.Forms.Application.ExecutablePath;
            //Console.WriteLine(Application.StartupPath);
            var path = ReflactionNamespace.Assembly.GetEntryAssembly().Location;
            response.Close();  
        }  
    }  
}
Answer 2

библиотека system.dll

код:

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

Найдено по запросу "c# get app file name"

Answer 3

Если необходимо узнать путь к исполняемому приложению, рекомендую использовать

string path = System.Environment.GetCommandLineArgs()[0];

Поясню: код @DIlshod работает с проектом, соответственно, если вы попробуете вынести его в отдельный проект-библиотеку, вызывая этот код из приложения, вы будете получать путь до исполняемой assembly, то есть, путь к dll библиотеке (имя будет соответствовать именно *.dll библиотеке, а не *.exe файлу)

Извлекая аргументы командной строки, вы гарантированно заберёте у ОС путь к исполняемому приложению, а не к текущему выполняемому модулю. Решение от @Andrew так же, более правильное, нежели рефлексия.

Answer 4

Если нужно только название файла с расширением:

$"http://*******/indata.php?nt={System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName.Split('\\').Last()}"
READ ALSO
SQL integration services выполнение сценария C#

SQL integration services выполнение сценария C#

Пытаюсь освоить SSISВ проекте Integration services добавить сценарий на C#, который принимает на вход строку,и выдает результат

95
Visual Studio , C# , .Net установщик EXE

Visual Studio , C# , .Net установщик EXE

Возник вопрос, мы 4 года уже изучаем на парах C# , пишем небольшие программки, используем разные фреймворки и тд, но дело до доработки проектов...

102
Наблюдение за буфером обмена

Наблюдение за буфером обмена

Нужно, чтобы код, который проверяет буфер обмена, работал постоянноСейчас он у меня срабатывает только по нажатию на кнопку

117