#c_sharp
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются. Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение. Закрыт 1 год назад. Пишу небольшое приложение которое работает с названием файла, но возникла сложность я не могу найти название исполняемого файла, многое перепробовал например: 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=(название файла)
Ответы
Ответ 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(); } } }Ответ 2
библиотека system.dll код: System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName Найдено по запросу "c# get app file name"Ответ 3
Если необходимо узнать путь к исполняемому приложению, рекомендую использовать string path = System.Environment.GetCommandLineArgs()[0]; Поясню: код @DIlshod работает с проектом, соответственно, если вы попробуете вынести его в отдельный проект-библиотеку, вызывая этот код из приложения, вы будете получать путь до исполняемой assembly, то есть, путь к dll библиотеке (имя будет соответствовать именно *.dll библиотеке, а не *.exe файлу) Извлекая аргументы командной строки, вы гарантированно заберёте у ОС путь к исполняемому приложению, а не к текущему выполняемому модулю. Решение от @Andrew так же, более правильное, нежели рефлексия.Ответ 4
Если нужно только название файла с расширением: $"http://*******/indata.php?nt={System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName.Split('\\').Last()}"
Комментариев нет:
Отправить комментарий