Ich schreibe ein kleines Dienstprogramm, das mit der Auswahl einer Datei beginnt, und dann muss ich einen Ordner auswählen. Ich möchte den Ordner standardmäßig auf die ausgewählte Datei festlegen.
OpenFileDialog.FileName
Gibt den vollständigen Pfad und den Dateinamen zurück. Ich möchte nur den Pfadabschnitt (ohne Dateinamen) erhalten , damit ich diesen als ursprünglich ausgewählten Ordner verwenden kann .
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)
{
...
}
Gibt es dafür .NET-Methoden oder muss ich regex, split, trim,
etc verwenden?
Wie wäre es damit:
string fullPath = ofd.FileName; string fileName = ofd.SafeFileName; string path = fullPath.Replace(fileName, "");
quelle
if (openFileDialog1.ShowDialog(this) == DialogResult.OK) { strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName; }
quelle
FileName
als Teil von ihm wolltesourceFolder
.Sie können FolderBrowserDialog anstelle von FileDialog verwenden und den Pfad aus dem OK-Ergebnis abrufen.
FolderBrowserDialog browser = new FolderBrowserDialog(); string tempPath =""; if (browser.ShowDialog() == DialogResult.OK) { tempPath = browser.SelectedPath; // prints path }
quelle
Hier ist der einfache Weg, es zu tun!
string fullPath =openFileDialog1.FileName; string directory; directory = fullPath.Substring(0, fullPath.LastIndexOf('\\'));
quelle