New Project
Ani 폴더 리스트 가져오는 API
This commit is contained in:
58
VideoArchiveAPI/Controllers/VideoController.cs
Normal file
58
VideoArchiveAPI/Controllers/VideoController.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user