Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

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

#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()}"

Комментариев нет:

Отправить комментарий