superstar_v2/HttpServerManager.cs

52 lines
1.7 KiB
C#

using System.IO;
namespace DualScreenDemo
{
public static class HttpServerManager
{
private static CancellationTokenSource _cts;
public static async void StartServer()
{
int httpPort = 9090; // 你可以修改此端口
string baseDirectory = Path.Combine(Application.StartupPath, @"themes\superstar\_www");
CleanUpDirectory(baseDirectory);
// await HttpServer.StartServer(baseDirectory, httpPort, Program.songListManager);
_cts = new CancellationTokenSource();
await HttpServer.StartServer(baseDirectory, httpPort, Program.songListManager, _cts.Token);
}
private static void CleanUpDirectory(string baseDirectory)
{
string[] directoriesToKeep = { "css", "fonts", "superstar-pic", "手機點歌" };
var allDirectories = Directory.GetDirectories(baseDirectory);
var allFiles = Directory.GetFiles(baseDirectory);
var filesToKeep = allFiles
.Where(file => file.EndsWith(".html"))
.Select(file => Path.GetFileName(file))
.ToArray();
foreach (var dir in allDirectories)
{
var dirName = Path.GetFileName(dir);
if (!directoriesToKeep.Contains(dirName))
{
Directory.Delete(dir, true);
}
}
foreach (var file in allFiles)
{
var fileName = Path.GetFileName(file);
if (!filesToKeep.Contains(fileName))
{
File.Delete(file);
}
}
}
}
}