Beispiel #1
0
        public FileSystemEntries EnumerateEntries(string path)
        {
            path.ValidateStringEmpty("path");

            var entries = new FileSystemEntries();

            if (path == "\\")
            {
                Directory
                .GetLogicalDrives()
                .ForEach(x => entries.Add(new DirectoryEntry {
                    FullName = x, Name = x, Parent = "\\"
                }));
            }
            else
            {
                if (!Directory.Exists(path))
                {
                    throw new InvalidOperationException();
                }

                Directory
                .EnumerateDirectories(path)
                .Select(CreateDirectoryEntry)
                .AddTo(entries);

                Directory
                .EnumerateFiles(path)
                .Select(CreateFileEntry)
                .AddTo(entries);
            }

            return(entries);
        }
Beispiel #2
0
        protected virtual string GetFileImage(FileSystemEntries file)
        {
            switch (Path.GetExtension(file.Name)?.ToLower().Replace(".", ""))
            {
            case "tar":
            case "7z":
            case "7zip":
            case "rar":
            case "zip":
                return("/Content/img/FileExtIcons/zip.png");

            case "exe":
            case "dmg":
            case "apk":
                return("/Content/img/FileExtIcons/exe.png");

            case "msi":
                return("/Content/img/FileExtIcons/msi.png");

            case "iso":
                return("/Content/img/FileExtIcons/iso.png");

            case "txt":
                return("/Content/img/FileExtIcons/txt.png");

            case "pdf":
                return("/Content/img/FileExtIcons/pdf.png");

            case "docx":
            case "doc":
                return("/Content/img/FileExtIcons/doc.png");

            case "png":
            case "jpg":
            case "jpeg":
            case "gif":
            case "ico":
                return("/Content/img/FileExtIcons/img.png");

            case "avi":
            case "wmv":
            case "mp4":
                return("/Content/img/FileExtIcons/movie.png");
            }
            return("/Content/img/FileExtIcons/other.png");
        }
        /// <summary>
        /// Reloads file system entries for the directory, adds commands to the list.
        /// </summary>
        /// <param name="dir">Directory to feed the items list.</param>
        /// <param name="includeCommands">Set true to include internal commands.</param>
        private void Reload(string dir = ".", bool includeCommands = false)
        {
            if (dir != ".")
            {
                includeCommands = false;
            }
            string trim(string _path, string _dir)
            {
                if (_path.StartsWith(_dir, StringComparison.OrdinalIgnoreCase))
                {
                    return(_path.Substring(_dir.Length).Trim('\\'));
                }
                return(_path);
            }

            if (Directory.Exists(dir))
            {
                FileSystemEntries = Directory.EnumerateFileSystemEntries(dir, "*").Select(i => trim(i, dir)).ToArray();
                All = includeCommands ? Commands.Concat(FileSystemEntries).OrderBy(i => i).ToArray() : FileSystemEntries.OrderBy(i => i).ToArray();
            }
            else
            {
                FileSystemEntries = new string[0];
                All = includeCommands ? Commands.OrderBy(i => i).ToArray() : FileSystemEntries;
            }
        }