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?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top