【问题标题】:Remove Hidden Folders from Custom Tree Folder Dialolog从自定义树文件夹对话框中删除隐藏文件夹
【发布时间】:2018-05-26 19:07:21
【问题描述】:

我使用 TreeView.Visit this 链接创建了一个自定义树文件夹对话框以获取参考代码。

 public bool CreateTree(TreeView treeView)
    {
        bool returnValue = false;

        try
        {
            // Create Desktop
            TreeNode desktop = new TreeNode();
            desktop.Text = "Desktop";
            desktop.Tag = "Desktop";
            desktop.Nodes.Add("");
            treeView.Nodes.Add(desktop);
            // Get driveInfo
            foreach (DriveInfo drv in DriveInfo.GetDrives())
            {
                TreeNode fChild = new TreeNode();
                if (drv.DriveType == DriveType.CDRom) 
                {
                    fChild.ImageIndex = 1;
                    fChild.SelectedImageIndex = 1;
                }
                else if (drv.DriveType == DriveType.Fixed)
                {
                    fChild.ImageIndex = 0;
                    fChild.SelectedImageIndex = 0;
                }
                fChild.Text = drv.Name;
                fChild.Nodes.Add("");
                treeView.Nodes.Add(fChild);

                returnValue = true;
            }

        }
        catch (Exception ex)
        {
            returnValue = false;
            MessageBox.Show(ex.Message);
        }
        return returnValue;
    }

有什么方法可以从此对话框中删除 $ 文件夹(系统隐藏文件,如回收站)?任何帮助都将是最有价值的。

【问题讨论】:

  • 您没有显示枚举文件夹的代码部分!但是我认为你会想要查看每个文件夹上的 DirectoryInfo.Attributes 并排除那些具有 System 和/或 Hidden 标志的文件夹。
  • @stuartd 感谢您提供信息指导。

标签: c# file drive


【解决方案1】:

请添加将来用于您的问题的完整来源。

您可以通过利用 DirectoryInfo 和/或 FileInfo 对象的 Attributes 属性来排除隐藏和/或系统文件夹。对于这组特定的源,您可以将以下逻辑添加到 EnumerateDirectory 方法中。

Attributes.HasFlag 在 C# 4.0 及更高版本中可用。

public TreeNode EnumerateDirectory(TreeNode parentNode)
{
    ...

    foreach (DirectoryInfo dir in rootDir.GetDirectories())
    {
        if (dir.Attributes.HasFlag(FileAttributes.Hidden)) continue;

        ...
    }

    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    相关资源
    最近更新 更多