Encontré soluciones para Windows Forms con AppDomain, pero ¿cuál sería el equivalente para un objeto WPF Application
?Obteniendo el directorio de la aplicación desde una aplicación WPF
Respuesta
Un método:
System.AppDomain.CurrentDomain.BaseDirectory
Otra manera de hacerlo sería:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
¡Pruebe esto!
No es bonito, pero funciona. Gracias :-) – Joey
Aquí hay otro:
System.Reflection.Assembly.GetExecutingAssembly().Location
Éste obtiene la ubicación después de _shadow-copiar_, como se indica [en los documentos] (http: // msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx). De hecho, no estoy seguro de si las sugerencias en la respuesta aceptada se ven afectadas por la copia oculta. –
Esto me dio el subdirectorio de la DLL que estaba llamando, no el directorio principal del programa. – strattonn
Puede también utilizar el primer argumento del comando argumentos de línea:
String exePath = System.Environment.GetCommandLineArgs()[0]
Sin embargo, tenga en cuenta que una aplicación "malvada" puede modificar sus argumentos de línea de comandos. –
@Daniel: ¿Por qué se lo haría a sí mismo? ¿O te refieres a una aplicación diferente? –
@Merlyn: ver http://blogs.msdn.com/b/oldnewthing/archive/2009/11/25/9928372.aspx Citaré: es un "parámetro convenientemente inicializado para el código de inicio del proceso". Entonces puede modificar deliberada o inadvertidamente esa ubicación de memoria. –
También puede utilizar libremente Application.StartupPath desde System.Windows.Forms, pero debe agregar la referencia para el ensamblado System.Windows.Forms.
Pruebe esto. No se olvide using System.Reflection
.
string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
He usado simplemente string baseDir = Environment.CurrentDirectory;
y su trabajo es para mí.
buena suerte
Editar:
que utiliza para eliminar este tipo de error, pero yo prefiero editarlo porque creo que el punto negativo de esta respuesta ayudar a la gente a saber sobre manera incorrecta. :) comprendí la solución anterior no es útil y lo cambié a string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
Otras formas de conseguirlo son:
1. string baseDir =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
2. String exePath = System.Environment.GetCommandLineArgs()[0];
3. string appBaseDir = System.IO.Path.GetDirectoryName
(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
buena suerte
Ese es el directorio de trabajo actual. * Puede * coincidir con el directorio de la aplicación, pero esos son conceptos separados (y lo más importante, el directorio de trabajo puede cambiar, por ejemplo, si tuviera abierto un cuadro de diálogo de archivo común). – Joey
@joey tienes razón. Lo cambié por esto: string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory; Gracias. – QMaster
He intentado esto:
label1.Content = Directory.GetCurrentDirectory();
y consigo también el directorio.
- 1. Obteniendo el directorio actual en la aplicación web .NET
- 2. ¿Cómo puedo abrir el Explorador de Windows en un directorio determinado desde una aplicación WPF?
- 3. Reiniciar la máquina desde una aplicación C#/WPF
- 4. ¿Cómo cargar desde la ruta relativa en la aplicación WPF?
- 5. ¿No hay salida a la consola desde una aplicación WPF?
- 6. ¿Cómo cerrar la aplicación WPF desde el menú contextual?
- 7. Obteniendo el directorio de la aplicación en la brecha del teléfono
- 8. ¿Detecta conectividad de red desde una aplicación WPF/XBAP?
- 9. Iniciar aplicación desde el paquete de aplicación
- 10. WPF: tiempo de inactividad de la aplicación
- 11. Ejemplo de una aplicación winforms implementada como una aplicación wpf?
- 12. "Aplicación de regalo" desde el interior de la aplicación
- 13. Desempeño de la aplicación WPF
- 14. Cómo usar un FolderBrowserDialog desde una aplicación WPF
- 15. Llamar a una aplicación desde otra aplicación
- 16. Directorio ejecutable desde donde se ejecuta la aplicación?
- 17. ¿Puedo iniciar una aplicación desde otra aplicación en el iPhone
- 18. Obtenga el tiempo transcurrido desde el inicio de la aplicación
- 19. Lanzamiento de la aplicación externa desde mi aplicación
- 20. ¿Abrir la aplicación iPod desde mi aplicación?
- 21. Determine el directorio de instalación de la aplicación de terceros
- 22. Obteniendo acceso denegado tratando de iniciar el clúster de caché de la aplicación desde powershell
- 23. Aplicación de perfil WPF
- 24. Vista de Django: cargar la plantilla desde el directorio de la aplicación que llama primero
- 25. Creando una cadena de conexión desde la entrada de un usuario en una aplicación WPF
- 26. Obteniendo todos los Informes Directos desde el Directorio Activo
- 27. iconos para la aplicación WPF
- 28. Cómo reiniciar la aplicación de Android desde la aplicación
- 29. Obteniendo un error después de implementar la aplicación en glassFIsh
- 30. Apagar una aplicación WPF de App.xaml.cs
Ah, gracias. Debe haber pasado por alto AppDomain de alguna manera. Lo estaba buscando, en realidad ... – Joey
No parece estar disponible en VS.Net 2010/WPF 4 – AndyD273
@ AndyD273: Funciona para mí. ¿Te falta una directiva 'using' o una referencia de ensamblado? – Helen