【问题标题】:OpenFileDialog utilizing Windows 10 Native SearchOpenFileDialog 利用 Windows 10 本机搜索
【发布时间】:2021-02-26 23:25:12
【问题描述】:

OpenFileDialog 显示后,我希望能够使用 Windows 10 搜索索引来缩小文件列表。这就像您在 Windows 探索中并在搜索框中键入内容一样,该搜索框也显示在右侧的 OpenFileDialog 中。

从 Jimi 的 cmets 中,我发现清除搜索的唯一方法是恢复初始目录。为此,您必须使用环境变量。通过这样做,我现在(仍然)有一个问题。当我在搜索框中输入任何字符时,不会显示任何文件。

我希望能够打开对话框,例如,转到搜索框并输入“Charles”,然后仅列出名称中包含 Charles 的文件。

我用来打开对话框的修改代码是:

using(OpenFileDialog GetPhoto = new OpenFileDialog())
{
  GetPhoto.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.CommonPictures);
  GetPhoto.RestoreDirectory = true;
  GetPhoto.Filter = "All Files|*.*|All I 
            images|*.jpg;*.jpeg;*.png;*.gif;*.tif;*.bmp|JPEG Images|*.jpg|PNG 
            Images|*.png"; 
  GetPhoto.Multiselect = true;
  if (GetPhoto.ShowDialog() == DialogResult.OK)

【问题讨论】:

  • 尝试使用InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
  • 您可以存储最后选择的目录并将InitialDirectory设置为选择的第一个文件名的路径。类似于:if (ofd.FileName.Length > 0) { ofdLastDir = Path.GetDirectoryName(ofd.FileName); },其中ofd 是 OpenFileDialog 实例,ofdLastDir 是存储路径的字段。 -- 你需要用using 声明你的OpenFileDialog:using (var ofd = new OpenFileDialog()) { ofd.InitialDirectory = ofdLastDir; ... }
  • 按照您的建议设置 InitialDirectory 确实清除了我上次搜索返回的所有文件。这在没有在 using 语句中声明的情况下工作(我现在已经完成了)。主要问题仍然存在。如果我开始在搜索框中输入“Charles”,目录中不会显示任何文件。我还想指出,我所有的照片都存储在我无法在 SpecialFolder 中找到的 Public Pictures 文件夹中。
  • Environment.GetFolderPath(Environment.SpecialFolder.CommonPictures);
  • 我已经尝试了所有的 SpecialFolder 变量。那个只是把我放在我的图片文件夹中,而不是公共的。目前正在使用 GetPhoto.InitialDirectory = Environment.ExpandEnvironmentVariables("%PUBLIC%")。我试图设置自己的系统变量,但没有奏效。同样,我真正需要帮助的是使用搜索框。鉴于缺乏响应和帖子,使用 openfile 对话框时甚至可能吗?因为我每次使用对话框文件名都需要选择我的文件夹也不起作用。请帮助我进行搜索。谢谢

标签: c# winforms search openfiledialog


【解决方案1】:

我遇到的问题是无法在我的代码中设置文件名来限制特定人的列表。因为我无法获得默认文件夹集,所以当我更改文件夹时,从代码中设置的文件名丢失了。感谢我以不同的方式提出这个问题,我能够解决默认文件夹问题,现在不需要使用 Windows 10 本机搜索。

我猜这个问题的答案是,你不能使用 OpenFileDialog Box 中的本地搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多