【问题标题】:Is it possible to set FolderBrowserDialog.SelectedPath with "..//..//FolderName" in C#?是否可以在 C# 中使用“..//..//FolderName”设置 FolderBrowserDialog.SelectedPath?
【发布时间】:2014-02-10 09:56:04
【问题描述】:
FolderBrowserDialog openfolderdialog1 = new FolderBrowserDialog();
openfolderdialog1.SelectedPath = "..\\..\\Gambar Train\\";
if (openfolderdialog1.ShowDialog() == DialogResult.OK)
{
    textBox1.Text = openfolderdialog1.SelectedPath;
}

它不工作。你有解决方案吗? 我想使用“..\..”,因为文件夹位置不固定。

【问题讨论】:

  • 那个文件夹存在吗?
  • “不工作”,究竟是什么意思?
  • 它工作正常。只有问题是直接使用相对路径分配 openfolderdialog1.SelectedPath 属性或实例化新 DirectoryInfo 并分配 openfolderdialog1.SelectedPath = TrainFolderLocation.FullName。
  • 是的,它正在工作,但选择的路径仍然是根文件夹(桌面)而不是我的相对文件夹“..\\..\\Gambar Train”。

标签: c# folderbrowserdialog


【解决方案1】:

在调用 ShowDialog 之前设置 SelectedPath 属性...

folderBrowserDialog1.SelectedPath = @"c:\temp\";
folderBrowserDialog1.ShowDialog();

将在 C:\Temp 启动它们

SelectedPath Property

【讨论】:

    【解决方案2】:

    由于 ..\ 是一个“相对”路径,您需要定义它的相对路径。

    所以 "..\..\folder\" 会起作用(你的例子不是因为SelectedPath 是一个字符串),但你不能说 100% 该位置会在哪里。

    我会查看 Directory.GetCurrentDirectoryAppDomain.CurrentDomain.BaseDirectory 之类的内容,然后以此为基础确定您的位置。

    【讨论】:

    • 你知道如何将焦点放在选定的路径上吗?导致对话框出现,但焦点仍在根文件夹中
    • 如果您设置了SelectedPath,但对话框不在该路径上,我的第一个想法是它不存在,或者您没有访问权限。
    • 它已经在那里,但我的视图仍然在顶部或根文件夹中。
    【解决方案3】:

    SelectedPath 属性是 string,而不是 DirectoryInfo

    试试

    openfolderdialog1.SelectedPath = "..\\..\\Gambar Train\\";
    

    【讨论】:

    • 我忘记编辑问题了。我已经将其更改为字符串,问题是我的文件夹是相对的 (..\\..\) 而不是 (C:\\test\)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多