¿Cómo conseguir el camino de la aplicación (sin app.exe)?
-
22-08-2019 - |
Pregunta
Quiero conseguir el camino de mi aplicación como: "\\ Archivos de programa \\ myApp", trato de utilizar el siguiente código:
string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
Pero devuelve una ruta que tiene "\\ myapp.exe" al final.
También probé:
string path = System.IO.Directory.GetCurrentDirectory();
Sin embargo, este lanza una “NotSupportedException”.
¿Hay alguna manera de obtener un trazado sin .exe al final?
Solución
path = System.IO.Path.GetDirectoryName( path );
Otros consejos
Application.StartupPath
debe hacer eso por usted.
Actualización: desde edita veo que se están ejecutando en Compact Framework. Entonces Application.StartupPath no funcionará. Este es el constructo que normalmente uso entonces:
private static string GetApplicationPath()
{
return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
}
Más sencillo que el resto:
using System.IO;
using System.Reflection;
...
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
Puede utilizar el método Path.GetDirectoryName (cadena) que pasa a su cadena de ruta original como parámetro para esto. ¿Que problema estas tratando de resolver? Tal vez usted realmente necesita algo así como directorio de trabajo?
Path.GetFileNameWithoutExtension(path);
Si es un exe como en el caso de uso:
// Summary:
// Gets the path for the executable file that started the
// application, not including the executable name.
Application.StartupPath
¿Qué pasa con el uso de un objeto FileInfo para extraer el nombre del directorio?
En Vb.Net:
fi = New FileInfo(System.Reflection.Assembly.GetExecutingAssembly.Location)
path = fi.DirectoryName