Получение текущего файла

Я знаю, что в vb.net вы можете использовать System.Reflection.MethodInfo.GetCurrentMethod.ToString, чтобы получить имя текущего метода, в котором вы находитесь. Однако есть ли способ использовать System.Reflection..., чтобы получить имя текущего файла, в котором вы находитесь?

Итак, если бы у вас был файл в проекте с именем blah.vb, я бы хотел, чтобы System.Reflection... возвращал blah.vb

Это возможно?


person bbesase    schedule 14.02.2014    source источник


Ответы (1)


Вы можете использовать System.Reflection.Assembly, чтобы найти имя файла текущей сборки. Есть несколько применимых методов на выбор:

  • GetEntryAssembly - Возвращает сборку, запустившую процесс (исполняемый файл)
  • GetCallingAssembly - Возвращает сборку, вызвавшую текущий метод
  • GetExecutingAssembly - Возвращает сборку, в которой находится текущий метод

Я подозреваю, что вы хотите GetExecutingAssembly. Все эти методы возвращают объект Assembly, через который вы можете получить путь к файлу, например:

Dim myFilePath As String = System.Reflection.Assembly.GetExecutingAssembly().Location

Как бы то ни было, если вам нужно получить имя исполняемого файла, но это не сборка .NET (поскольку вы находитесь в библиотеке .NET, вызываемой через COM), то метод, описанный выше, выиграл. не работает. Для этого лучше всего взять первый аргумент из командной строки, например: Dim myComExeFile As String = Environment.GetCommandLineArgs()(0)

person Steven Doggart    schedule 14.02.2014