Example #1
0
        private void ReloadDirectories(string path, FileDialogBehavior behavior)
        {
            string[] directories = Directory.GetDirectories(path);
            Array.Sort(directories, StringComparer.InvariantCulture);
            foreach (string directory in directories)
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(directory);

                if (behavior.HasFlag(FileDialogBehavior.HideHiddenFilesAndDirectories) &&
                    directoryInfo.Attributes.HasFlag(FileAttributes.Hidden))
                {
                    if (behavior.HasFlag(FileDialogBehavior.HideReparsePoints) ||
                        !directoryInfo.Attributes.HasFlag(FileAttributes.ReparsePoint))
                    {
                        continue;
                    }
                }

                if (behavior.HasFlag(FileDialogBehavior.HideSystemFilesAndDirectories) &&
                    directoryInfo.Attributes.HasFlag(FileAttributes.SparseFile))
                {
                    continue;
                }

                this.Items.Add(new FileDialogItem(FileDialogItemType.Directory, Path.GetFileName(directory), directory));
            }
        }
Example #2
0
        private void ReloadFiles(string path, string searchPattern, FileDialogBehavior behavior)
        {
            string[] files = Directory.GetFiles(path, searchPattern, SearchOption.TopDirectoryOnly);
            Array.Sort(files, StringComparer.InvariantCulture);
            foreach (string file in files)
            {
                FileInfo fileInfo = new FileInfo(file);

                if (behavior.HasFlag(FileDialogBehavior.HideHiddenFilesAndDirectories) &&
                    fileInfo.Attributes.HasFlag(FileAttributes.Hidden))
                {
                    continue;
                }

                if (behavior.HasFlag(FileDialogBehavior.HideSystemFilesAndDirectories) &&
                    fileInfo.Attributes.HasFlag(FileAttributes.SparseFile))
                {
                    continue;
                }

                this.Items.Add(new FileDialogItem(FileDialogItemType.File, Path.GetFileName(file), file));
            }
        }