首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中打开无法访问本地驱动器C的文件浏览器

在C#中打开无法访问本地驱动器C的文件浏览器
EN

Stack Overflow用户
提问于 2016-03-25 17:48:24
回答 2查看 579关注 0票数 0
代码语言:javascript
复制
var  dlgs = new System.Windows.Forms.OpenFileDialog();
       dlgs.CustomPlaces.Clear();
       var ListDrives = DriveInfo.GetDrives();
       foreach (DriveInfo Drive in ListDrives)
       {
            if ((Drive.DriveType == DriveType.Fixed) && (Drive.Name != "C"))
            {
                dlgs.CustomPlaces.Add(Drive.Name);

            }
           dlgs.ShowDialog();
       }

我正在尝试打开一个不应该访问本地驱动器C的文件浏览器,以便用户可以选择文件夹是其他本地驱动器中的文件,如("D“,"E")。

EN

回答 2

Stack Overflow用户

发布于 2016-03-25 17:57:45

我现在只是在看OpenFileDialogue class documentation,但我没有看到任何会限制用户使用某些驱动器的东西……This post让我好奇,它是否真的可以做到;但也许它可以使用filter来完成……

票数 1
EN

Stack Overflow用户

发布于 2016-03-25 18:26:34

不可能限制用户在对话框本身中可以访问的位置(除非您实现了自己的对话框)。

但是,可以使用FileOk事件限制文件是否可以打开(是否按下Open按钮或双击将实际关闭对话框)。

类似于:

代码语言:javascript
复制
void DialogFileOk(object sender, CancelEventArgs e)
{
  var dialog = sender as OpenFileDialog;
  if(dialog == null) return;
  if(Path.GetPathRoot(dialog.FileName) == @"C:\")
  {
    e.Cancel = true;
    // maybe show messagebox or task dialog informing the user?
  }
}

同样,这不会阻止用户浏览C:\驱动器,它只是阻止对话框选择该驱动器中的文件。

PS:如果需要,可以适应多项选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36217588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档