using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using API.Interfaces;
namespace API.Services
{
public class DirectoryService : IDirectoryService
{
///
/// Lists out top-level folders for a given directory. Filters out System and Hidden folders.
///
/// Absolute path
/// List of folder names
public IEnumerable ListDirectory(string rootPath)
{
// TODO: Put some checks in here along with API to ensure that we aren't passed a file, folder exists, etc.
var di = new DirectoryInfo(rootPath);
var dirs = di.GetDirectories()
.Where(dir => !(dir.Attributes.HasFlag(FileAttributes.Hidden) || dir.Attributes.HasFlag(FileAttributes.System)))
.Select(d => d.Name).ToImmutableList();
return dirs;
}
}
}