我试图找出如何允许用户选择目录,而不仅仅是选择文件。我不关心文件,只关心目录。有没有办法让用户这样做?我想出的唯一方法是返回运行应用程序的机器上可用的驱动器列表。
这不是我需要的,因为任何联网的计算机都不会显示 - 只有实际映射的驱动器。我只需要让用户选择一个源目录并保存该服务器路径(\\my-server-name\path\to\source
),以便我运行的服务将在预定的时间处理它。
我不确定我的代码是否可以修改为显示所有网络计算机,或者是否已经有一种方法/库让用户在服务器上浏览器目录,但我卡住了。有没有办法实现这个目标?
return (from info in driveInfo
where info.DriveType == DriveType.Network
select new Drive
{
Name = info.Name, Type = info.DriveType,
RootDirectory = info.RootDirectory.Name, IsReady = info.IsReady,
}).ToList();
任何非c#解决方案也都可以,只要它仍然可以很好地集成。不确定NodeJS
或Html5
或Javascript
是否可以执行此操作?
答案 0 :(得分:0)
这不是一个漂亮的解决方案 - 而且距离很快,但如果我正确地阅读你的问题,这就是你正在寻找的(在VB.NET中完成)。
Dim fbd1 As New FolderBrowserDialog
Dim type As Type = FolderBrowserDialog1.GetType
Dim fieldInfo As Reflection.FieldInfo = type.GetField("rootFolder", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
fieldInfo.SetValue(fbd1, DirectCast(18, Environment.SpecialFolder))
fbd1.ShowDialog()
这会将FolderBrowserDialog
与“网络”对话作为根文件夹。单击“网络”后,它将展开以列出您可以查看的所有网络设备。在我的电脑上,这很慢。
这是我在此处找到的一个稍微修改过的解决方案 - http://www.codeproject.com/Articles/20547/How-to-Browse-Network-Folders-using-Folder-Dialog