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); }
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(); }
public static Widget Explorer(string path) => Explorer(ExplorerEntry.FromFolder(path));
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(); }
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(); }
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(); }