58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Diagnostics;
|
|
|
|
namespace VideoArchiveAPI.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("[controller]")]
|
|
public class VideoController : ControllerBase
|
|
{
|
|
private readonly ILogger<VideoController> _logger;
|
|
private readonly Config _config;
|
|
|
|
public VideoController(ILogger<VideoController> logger, IOptions<Config> config)
|
|
{
|
|
_logger = logger;
|
|
_config = config.Value;
|
|
}
|
|
|
|
[HttpGet(Name = "VideoController")]
|
|
public ActionResult<List<string>> Get()
|
|
{
|
|
GetData getData = new GetData();
|
|
|
|
List<string> directorys = getData.GetSubDirectories(_config.Location);
|
|
if (directorys.Count == 0)
|
|
{
|
|
return NotFound();
|
|
}
|
|
else
|
|
{
|
|
return Ok(directorys);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class GetData
|
|
{
|
|
public List<string> GetSubDirectories(string path)
|
|
{
|
|
List<string> directorys = new List<string>();
|
|
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("\\", ""));
|
|
}
|
|
else
|
|
{
|
|
directorys.AddRange(GetSubDirectories(dir));
|
|
}
|
|
}
|
|
return directorys;
|
|
}
|
|
}
|
|
} |