visual ruta openfiledialog1 obtener net configurar con archivo c# winforms filedialog

c# - ruta - ¿Qué hace realmente la propiedad FileDialog.RestoreDirectory?



openfiledialog1 c# (5)

Aquí, estoy hablando de WinForms FileDialog solamente, WPF FileDialog puede tener un comportamiento diferente.

Para Win XP, el directorio actual se cambia durante el uso del diálogo.

Para aplicaciones multihilo, esto debe ser consciente. Es fácil de probar ejecutando un bucle en un nuevo hilo para verificar si el directorio actual se modifica durante el uso del diálogo, al cambiar a otra carpeta.

Para Win 7 / mono, el directorio actual no se cambia durante o después de usar el diálogo.

Por lo tanto, Win 7 / mono: la propiedad RestoreDirectory no es necesaria.

He leído sobre la propiedad en MSDN, pero aún no entiendo lo que hace.

Obtiene o establece un valor que indica si el cuadro de diálogo restaura el directorio actual antes de cerrarse.

¿Qué significa eso exactamente? ¿Qué hace realmente "restaurar" el directorio actual? Gracias por la ayuda.


Cuando puede seleccionar un directorio al usar el cuadro de diálogo, el siguiente uso del cuadro de diálogo se abrirá en el último directorio utilizado. El uso de esta opción restaurará el directorio original.


Si se establece en verdadero, el cuadro de diálogo del archivo siempre abrirá la ruta predeterminada del archivo (propiedad InitialDirectory).


Un inconveniente molesto de la implementación original fue que, después de realizar su selección, el directorio actual de su aplicación cambió a esa carpeta, lo que significa que si esperaba que las operaciones de Archivo fueran relativas a la carpeta de su aplicación, ahora fallaría.

Esto significaba que era una práctica común agregar código para capturar la carpeta actual antes de usar el cuadro de diálogo y luego restaurarla.

Esto se solucionó, por lo que puede hacer esto por usted, pero cambiar el comportamiento predeterminado podría haber roto el código que dependía de la peculiaridad. Así que necesitas habilitarlo manualmente a través de esta propiedad.


IIRC, en Windows XP cuando presiona Save en un SaveFileDialog (o Open en un OpenFileDialog ) el directorio donde se guarda (o abre) el archivo, se establece como el nuevo directorio de trabajo actual (el directorio en Environment.CurrentDirectory ).

Al configurar FileDialog.RestoreDirectory = true , cuando cierra FileDialog , se restaura el directorio de trabajo original.

En Windows Vista / Seven, el comportamiento es siempre como FileDialog.RestoreDirectory = true (sí, incluso si lo configura como falso ...).