Piszę małe narzędzie, które zaczyna się od wybrania pliku, a następnie muszę wybrać folder. Chciałbym ustawić domyślny folder, w którym znajdował się wybrany plik.
OpenFileDialog.FileName
zwraca pełną ścieżkę i nazwę pliku - chcę tylko uzyskać fragment ścieżki (bez nazwy pliku) , więc mogę użyć tego jako początkowego wybranego folderu .
private System.Windows.Forms.OpenFileDialog ofd;
private System.Windows.Forms.FolderBrowserDialog fbd;
...
if (ofd.ShowDialog() == DialogResult.OK)
{
string sourceFile = ofd.FileName;
string sourceFolder = ???;
}
...
fbd.SelectedPath = sourceFolder; // set initial fbd.ShowDialog() folder
if (fbd.ShowDialog() == DialogResult.OK)
{
...
}
Czy są jakieś metody .NET, aby to zrobić, czy muszę użyć regex, split, trim,
itp.?
co powiesz na to:
string fullPath = ofd.FileName; string fileName = ofd.SafeFileName; string path = fullPath.Replace(fileName, "");
źródło
if (openFileDialog1.ShowDialog(this) == DialogResult.OK) { strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName; }
źródło
FileName
częścią jegosourceFolder
.Możesz użyć FolderBrowserDialog zamiast FileDialog i pobrać ścieżkę z wyniku OK.
FolderBrowserDialog browser = new FolderBrowserDialog(); string tempPath =""; if (browser.ShowDialog() == DialogResult.OK) { tempPath = browser.SelectedPath; // prints path }
źródło
Oto prosty sposób na zrobienie tego!
string fullPath =openFileDialog1.FileName; string directory; directory = fullPath.Substring(0, fullPath.LastIndexOf('\\'));
źródło