Mizuki/Services/DriveService.cs
2025-01-12 20:17:43 +01:00

50 lines
No EOL
1.3 KiB
C#

namespace Mizuki.Services;
/// <summary>
/// The service responsible for managing file uploads.
/// </summary>
public class DriveService
{
/// <summary>
/// The path to the uploads folder.
/// </summary>
private const string UploadsFolder = "./uploads";
/// <summary>
/// The drive service.
/// </summary>
public DriveService()
{
if (!Directory.Exists(UploadsFolder))
Directory.CreateDirectory(UploadsFolder);
}
/// <summary>
/// Opens a file by its filename.
/// </summary>
/// <param name="filename">Its filename.</param>
/// <returns>The file's stream.</returns>
public Stream? OpenFileByFilename(string filename)
{
var actualFilename = Path.GetFileName(filename);
var path = Path.Combine(UploadsFolder, actualFilename);
if (!File.Exists(path))
return null;
return File.OpenRead(path);
}
/// <summary>
/// Deletes a file by its filename.
/// </summary>
/// <param name="filename">Its filename.</param>
public void DeleteFileByFilename(string filename)
{
var actualFilename = Path.GetFileName(filename);
var path = Path.Combine(UploadsFolder, actualFilename);
if (!File.Exists(path))
return;
File.Delete(path);
}
}