Example #1
0
        public static Widget Explorer(ExplorerEntry explorer)
        {
            var widgets = new WidgetList(); // Gridformat is broken, cannot use

            foreach (var entry in explorer.GetDirectories())
            {
                var label  = Label(entry.Key);
                var spacer = new Widget();
                spacer.Width = 30;
                //spacer.IsFixedWidth = true;
                var widget = new Widget().WithAddedBehavior(new GridFormat(2, 1));
                widget[0, 0] = spacer;
                widget[1, 0] = label;
                widgets.Add(widget);
            }

            foreach (var entry in explorer.GetFiles())
            {
                var widget = Label(entry.Key);
                widgets.Add(widget);
            }

            var result = new Widget();

            result.AddRange(widgets);
            result.Behaviors.Add(new GridFormat(1, widgets.Count));
            return(result);
        }
Example #2
0
    private void SelectDisk()
    {
        upButton.enabled = false;
        ClearItems();

        drives = Directory.GetLogicalDrives();

        currentPath.text = "Select Drive";

        foreach (var drive in drives)
        {
            var entry = new ExplorerEntry();
            entry.fullPath = drive;
            entry.name     = drive;
            entry.sprite   = iconDrive;
            explorer.Add(entry);
            entry.entryType = EntryType.Drive;
        }
        FillItems();
    }
Example #3
0
 public static Widget Explorer(string path) =>
 Explorer(ExplorerEntry.FromFolder(path));
Example #4
0
    private void UpdateDir()
    {
        ClearItems();

        if (fileWatcher == null)
        {
            fileWatcher                     = new FileSystemWatcher(currentDirectory);
            fileWatcher.Changed            += OnFileEvent;
            fileWatcher.Created            += OnFileEvent;
            fileWatcher.Deleted            += OnFileEvent;
            fileWatcher.Renamed            += OnFileEvent;
            fileWatcher.EnableRaisingEvents = true;
        }

        fileWatcher.Path = currentDirectory;

        var dirinfo       = new DirectoryInfo(currentDirectory);
        var filteredFiles = new List <FileInfo>();
        var patterns      = searchPattern.Split(';');

        filenameField.text = "";

        foreach (string p in patterns)
        {
            filteredFiles.AddRange(dirinfo.GetFiles(p));
        }

        var directories = dirinfo.GetDirectories();

        currentPathField.text = currentDirectory;

        int direction = sortAscending ? 1 : -1;

        if (sortedBy == SortedBy.Name)
        {
            Array.Sort(directories, (x, y) => direction * String.Compare(x.Name, y.Name, StringComparison.Ordinal));
            filteredFiles.Sort((x, y) => direction * String.Compare(x.Name, y.Name, StringComparison.Ordinal));
        }
        if (sortedBy == SortedBy.Date)
        {
            Array.Sort(directories, (x, y) => direction * x.LastWriteTime.CompareTo(y.LastWriteTime));
            filteredFiles.Sort((x, y) => direction * x.LastWriteTime.CompareTo(y.LastWriteTime));
        }
        if (sortedBy == SortedBy.Size)
        {
            filteredFiles.Sort((x, y) => direction * x.Length.CompareTo(y.Length));
        }

        foreach (var directory in directories)
        {
            if (directory.Attributes.HasFlag(FileAttributes.System) ||
                directory.Attributes.HasFlag(FileAttributes.Hidden))
            {
                continue;
            }

            var entry = new ExplorerEntry
            {
                name      = directory.Name,
                sprite    = iconDirectory,
                fullPath  = directory.FullName,
                date      = directory.LastWriteTime,
                entryType = EntryType.Directory
            };

            entries.Add(entry);
        }

        foreach (var file in filteredFiles)
        {
            if (file.Attributes.HasFlag(FileAttributes.System) ||
                file.Attributes.HasFlag(FileAttributes.Hidden))
            {
                continue;
            }

            var entry = new ExplorerEntry
            {
                name      = file.Name,
                sprite    = iconFile,
                fullPath  = file.FullName,
                date      = file.LastWriteTime,
                size      = file.Length,
                extension = file.Extension,
                entryType = EntryType.File
            };

            entries.Add(entry);
        }

        FillItems();
    }
Example #5
0
    private void UpdateDir()
    {
        var dirinfo       = new DirectoryInfo(currentDirectory);
        var filteredFiles = new List <FileInfo>();
        var patterns      = searchPattern.Split(';');

        filenameField.text = "";

        foreach (string p in patterns)
        {
            filteredFiles.AddRange(dirinfo.GetFiles(p));
        }

        directories      = dirinfo.GetDirectories();
        currentPath.text = currentDirectory;

        int direction = sortAscending ? 1 : -1;

        if (sortByName)
        {
            Array.Sort(directories, (x, y) => direction * String.Compare(x.Name, y.Name, StringComparison.Ordinal));
            filteredFiles.Sort((x, y) => direction * String.Compare(x.Name, y.Name, StringComparison.Ordinal));
        }
        if (sortByDate)
        {
            Array.Sort(directories, (x, y) => direction * x.LastWriteTime.CompareTo(y.LastWriteTime));
            filteredFiles.Sort((x, y) => direction * x.LastWriteTime.CompareTo(y.LastWriteTime));
        }

        ClearItems();

        foreach (var directory in directories)
        {
            var entry = new ExplorerEntry
            {
                name      = directory.Name,
                sprite    = iconDirectory,
                fullPath  = directory.FullName,
                date      = directory.LastWriteTime,
                entryType = EntryType.Directory
            };

            entries.Add(entry);
        }

        foreach (var file in filteredFiles)
        {
            var entry = new ExplorerEntry
            {
                name      = file.Name,
                sprite    = iconFile,
                fullPath  = file.FullName,
                date      = file.LastWriteTime,
                entryType = EntryType.File
            };

            entries.Add(entry);
        }

        FillItems();
    }
Example #6
0
    private void UpdateDir()
    {
        var dirinfo       = new DirectoryInfo(currentDirectory);
        var filteredFiles = new List <FileInfo>();

        foreach (var pattern in searchPattern.Split(';'))
        {
            foreach (var file in dirinfo.GetFiles(pattern))
            {
                filteredFiles.Add(file);
            }
        }
        files            = filteredFiles.ToArray();
        directories      = dirinfo.GetDirectories();
        currentPath.text = currentDirectory;

        if (sortByName)
        {
            if (sortAscending)
            {
                Array.Sort(directories, (x, y) => x.Name.CompareTo(y.Name));
                Array.Sort(files, (x, y) => x.Name.CompareTo(y.Name));
            }
            else
            {
                Array.Sort(directories, (x, y) => - x.Name.CompareTo(y.Name));
                Array.Sort(files, (x, y) => - x.Name.CompareTo(y.Name));
            }
        }

        if (sortByDate)
        {
            if (sortAscending)
            {
                Array.Sort(directories, (x, y) => x.LastWriteTime.CompareTo(y.LastWriteTime));
                Array.Sort(files, (x, y) => x.LastWriteTime.CompareTo(y.LastWriteTime));
            }
            else
            {
                Array.Sort(directories, (x, y) => - x.LastWriteTime.CompareTo(y.LastWriteTime));
                Array.Sort(files, (x, y) => - x.LastWriteTime.CompareTo(y.LastWriteTime));
            }
        }

        ClearItems();

        foreach (var directory in directories)
        {
            var entry = new ExplorerEntry
            {
                name      = directory.Name,
                sprite    = iconDirectory,
                fullPath  = directory.FullName,
                date      = directory.LastWriteTime,
                entryType = EntryType.Directory
            };

            explorer.Add(entry);
        }

        foreach (var file in files)
        {
            var entry = new ExplorerEntry
            {
                name      = file.Name,
                sprite    = iconFile,
                fullPath  = file.FullName,
                date      = file.LastWriteTime,
                entryType = EntryType.File
            };

            explorer.Add(entry);
        }

        FillItems();
    }