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));
}
}
Niezależnie od tego, czy ustawię wartość RestoreDirectory na true, zawsze przejdę do katalogu LAST używanego, jeśli mój początkowy katalog jest ustawiony na ścieżkę, która nie istnieje. Gdzie jest ostatnio używany katalog zapisany przez OpenFileDialog? I czy istnieje sposób na obejście tego zachowania? (Np. zawsze chcę ustawić C: \ jeśli początkowy katalog nie istnieje?)Domyślna ścieżka OpenFileDialog
Dzięki za obie odpowiedzi, zaznaczę twoją odpowiedź jako zaakceptowaną, chociaż druga odpowiedź jest również dobra. Fakt, że WRESZCIE mam odpowiedź na GDZIE DOKŁADNIE zapisana jest ścieżka, jest dla mnie plus. Dzięki jeszcze raz! –
Upvoting _Hans Passant_ jest tak bezcelowy ... – itsho