相关疑难解决方法(0)

如何配置OpenFileDialog来选择文件夹?

在VS .NET中,当您为项目选择文件夹时,会显示一个看起来像OpenFileDialog或SaveFileDialog的对话框,但设置为仅接受文件夹.自从我看到这个以来,我就想知道它是如何完成的.我知道FolderBrowserDialog,但我从来没有真正喜欢那个对话框.它开始太小,不让我利用能够键入路径.

我几乎可以肯定,现在没有办法从.NET做到这一点,但我也很好奇你是如何从非托管代码中做到这一点的.如果没有从头开始完全重新实现对话框,那么如何修改对话框以获得此行为?

我还要重申,我知道FolderBrowserDialog,但有时我不喜欢使用它,除了真正好奇如何以这种方式配置对话框.告诉我只使用FolderBrowserDialog可以帮助我保持一致的UI体验,但不能满足我的好奇心,所以它不会算作答案.

它也不是特定于Vista的东西; 自从VS .NET 2003以来我一直在看这个对话框,所以在Win2k和WinXP中它是可行的.这不是一个"我想知道正确的方法来做这个"的问题,更多的是"我一直很好奇这个,因为我第一次想在VS 2003中这样做"的问题.我知道Vista的文件对话框有一个选项可以做到这一点,但它一直在XP中工作,所以我知道他们做了一些事情让它工作.特定于Vista的答案不是答案,因为问题上下文中不存在Vista.

更新:我接受了Scott Wisniewski的答案,因为它附带了一个工作样本,但我认为Serge指出对话框定制(这无疑是.NET令人讨厌但它确实有效)和Mark Ransom弄清楚MS 是值得称赞的.可能为此任务滚动了一个自定义对话框.

.net windows winapi openfiledialog

246
推荐指数
11
解决办法
21万
查看次数

如何从 NodeJS(服务器端,而不是浏览器)打开“选择文件夹”对话框?

为什么要在服务器端显示文件/文件夹对话框?

我正在构建一个打算在本地运行的项目(浏览器中的 Node 服务器端部分和客户端),我希望能够在其中选择路径,将其添加到某个列表或 JSON文件,然后在其中维护一些项目(webpack'ing、读取文件、通过 express 服务等)。

主要只是供个人使用,现在无论如何。

我要求通过 Node 而不是浏览器执行此操作的原因是,我可以以某种方式绕过现代浏览器中的安全隐患,即在选择文件夹时防止在客户端显示完整的本地文件夹路径(从<input>标签)。

不仅如此,我还:

  • 不需要上传任何文件,或
  • 不需要所选文件夹中包含的文件列表。

我只需要:

  • 一种以用户友好的方式选择文件夹的方法,以及...
  • 提交它的路径到服务器
  • (或让服务器提示,并将其存储在某处)。

以这个input标签为例:

<input id="open-project" type="file" />

这将导致这种类型的弹出窗口,非常适合深入文件夹、粘贴部分路径以快速导航到您需要的位置、转到您的快速访问/收藏夹等...

显示打开文件对话框

但它用于选择 files,没有暴露路径,没有任何有用的传递给服务器。

然而...

如果换成这个...

<input id="open-project" type="file" webkitdirectory directory />

您最终会看到这个可怕的对话框,它假定您要上传文件夹中包含的所有文件。

在此处输入图片说明

在此处输入图片说明


所以它看起来并不是<input>要走的路。

也许有一个现有的模块可以在服务器端执行此操作?这样我就可以:

  • 从客户端“调用”它,例如通过 AJAX
  • 然后会在服务器上触发它
  • 然后显示文件夹选择提示

或者...

制作一个...浏览器中的树视图...与节点端来回通信以挖掘本地文件系统...

有什么建议?

javascript windows path openfiledialog node.js

6
推荐指数
1
解决办法
7188
查看次数

标签 统计

openfiledialog ×2

windows ×2

.net ×1

javascript ×1

node.js ×1

path ×1

winapi ×1