using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using System.Diagnostics; namespace VideoArchiveAPI.Controllers { [ApiController] [Route("[controller]")] public class VideoController : ControllerBase { private readonly ILogger _logger; private readonly Config _config; public VideoController(ILogger logger, IOptions config) { _logger = logger; _config = config.Value; } [HttpGet(Name = "VideoController")] public ActionResult> Get() { GetData getData = new GetData(); List directorys = getData.GetSubDirectories(_config.Location); if (directorys.Count == 0) { return NotFound(); } else { return Ok(directorys); } } } public class GetData { public List GetSubDirectories(string path) { List directorys = new List(); string[] dirs = System.IO.Directory.GetDirectories(path); foreach (string dir in dirs) { string[] subDirs = System.IO.Directory.GetDirectories(dir); if(subDirs.Length == 0) { directorys.Add(dir.Replace(path,"").Replace("\\", "").Replace("/","")); } else { directorys.AddRange(GetSubDirectories(dir)); } } return directorys; } } }