52 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |