using (var openFileDialog1 = new OpenFileDialog())
{
openFileDialog1.Reset();
if (!string.IsNullOrEmpty(ExcelFilePath))
{
string fileName = Path.GetFileName(ExcelFilePath);
string fileExt = Path.GetExtension(ExcelFilePath);
//Avoid "you can't open this location using this program file" dialog
//if there is a file name in the path strip it)
if (!string.IsNullOrEmpty(fileName))
initialDirectory = Path.GetDirectoryName(ExcelFilePath);
//if not let it be
else
initialDirectory = ExcelFilePath;
openFileDialog1.InitialDirectory = initialDirectory;
}
else
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "Excel files (*.xls or *.xlsx)|*.xls;*.xlsx";
//openFileDialog1.Filter = "xls files (*.xls)|*.xls|xlsx files(*.xlsx)|.xlsx";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = false;
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
var browseSelectionMade = BrowseSelectionMade;
if (browseSelectionMade!=null)
browseSelectionMade(this, new DataEventArgs<string>(openFileDialog1.FileName));
}
}
Independientemente de si o no me puse a RestoreDirectory cierto, siempre se busque el directorio utilizado por último, si mi directorio inicial se establece en un camino que no existe. ¿Dónde está guardado el último directorio usado por OpenFileDialog? ¿Y hay una manera de anular este comportamiento? (Por ejemplo, siempre quiero configurarlo en C: \ si el directorio inicial no existe?)OpenFileDialog ruta predeterminada
Gracias por ambas respuestas, marcaré su respuesta como la aceptada, aunque la segunda respuesta también es buena. El hecho de que FINALMENTE tengo una respuesta a DÓNDE EXACTAMENTE se almacena el camino, es lo mejor para mí. ¡Gracias de nuevo! –
Voto ascendente _Hans Passant_ se siente tan inútil ... – itsho