Deseo determinar la ruta absoluta de los archivos utilizados por un proceso conocido leyendo la línea de comando. Actualmente, el proceso se inicia con rutas relativas en la línea de comandos que apuntan a varios archivos, como los archivos de configuración. El problema es que si las rutas no son relativas a la carpeta que contiene el ejecutable, no tengo forma de convertir las rutas relativas proporcionadas en la línea de comandos, así que no puedo estar 100% seguro.C# Obtener el directorio de trabajo de otro proceso
Por ejemplo dos archivos por lotes:
LOTE 1 CD c: \ prueba \ bin test.exe .. \ config \ config.ini
LOTE 2 CD c: \ test bin \ test.exe config \ config.ini
Para el archivo por lotes uno, la línea de comando que obtengo es "c: \ test \ bin \ test.exe .. \ config \ config.ini" y para el archivo por lotes dos I obtener "c: \ test \ bin \ test.exe config \ config.ini". Entonces, mira esto, no puedo resolver los caminos.
De todos modos para los principiantes, obtuve la línea de comando de una consulta WMI usando ManagementObjectSearcher. Ahora necesito obtener el directorio de trabajo desde el que se inició el proceso para resolver las rutas pasadas en la línea de comandos, pero ¿cómo?
EDITAR: Olvidé un detalle clave. Quiero obtener el directorio de trabajo de otro proceso. Básicamente, mi programa principal recopila información de otro programa. Puedo determinar la identificación del proceso porque sé el nombre del ejecutable. También puedo determinar la línea de comando. Ahora debo encontrar el directorio de trabajo o el directorio actual en el que se inició el archivo ejecutable para poder resolver las rutas relativas de la línea de comando. Espero haber aclarado la pregunta.
Creo que el título de la pregunta no es exactamente lo que estás pidiendo. "Obtener directorio de trabajo de proceso" es una cuestión del directorio de trabajo, que presumiblemente puede cambiar durante la ejecución, pero la pregunta en sí parece estar preguntando por el directorio desde el que se inició el ejecutable, que puede ser bastante diferente (y no cambia durante proceso de ejecución). La respuesta de @ chris166 aborda el título de su pregunta, pero mi respuesta aborda la pregunta en sí, en mi humilde opinión. Quizás puedas aclarar la confusión? – Cyberherbalist