Извлечение пути из OpenFileDialog путь / имя файла



Я пишу небольшую программу, которая начинается с выбора файла, а затем нужно выбрать папку. Я хотел бы по умолчанию папку, в которой был выбран файл.



OpenFileDialog.FileName возвращает полный путь и имя файла - то, что я хочу, чтобы получить только часть пути (без имени файла), так что я могу использовать это в качестве начального избранные папки.



    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)
{
...
}


существуют ли какие-либо методы .NET для этого, или мне нужно использовать regex, split, trim, и так далее??

1343   5  

5 ответов:

использовать Path класс System.IO. Он содержит полезные вызовы для управления путями к файлам, в том числе GetDirectoryName который делает то, что вы хотите, возвращая каталог часть пути к файлу.

использование просто.

string directoryPath = Path.GetDirectoryName(filePath);

Как насчет этого:

string fullPath = ofd.FileName;
string fileName = ofd.SafeFileName;
string path = fullPath.Replace(fileName, "");
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
    strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
}

вы можете использовать FolderBrowserDialog вместо FileDialog и получить путь от результата OK.

FolderBrowserDialog browser = new FolderBrowserDialog();
string tempPath ="";

if (browser.ShowDialog() == DialogResult.OK)
{
  tempPath  = browser.SelectedPath; // prints path
}

вот простой способ сделать это !

string fullPath =openFileDialog1.FileName;
string directory;
directory = fullPath.Substring(0, fullPath.LastIndexOf('\'));

Comments

    Ничего не найдено.