菜單和酒單更新
This commit is contained in:
parent
f2d633e688
commit
39c2a39fd8
140
DataCheck.cs
Normal file
140
DataCheck.cs
Normal file
@ -0,0 +1,140 @@
|
||||
using System.IO;
|
||||
namespace DataCheck
|
||||
{
|
||||
public class dataCheck
|
||||
{
|
||||
public dataCheck()
|
||||
{
|
||||
menu_check();
|
||||
news_check();
|
||||
}
|
||||
private void menu_check()
|
||||
{
|
||||
string menuPath = @"\\SVR01\foods";
|
||||
string menuPath_local = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "foods");
|
||||
|
||||
if (!Directory.Exists(menuPath_local))
|
||||
{
|
||||
Directory.CreateDirectory(menuPath_local);
|
||||
}
|
||||
var serverFiles = Directory.GetFiles(menuPath, "*.jpg")
|
||||
.Select(f => new FileInfo(f))
|
||||
.ToDictionary(f => f.Name, f => f);
|
||||
|
||||
var localFiles = Directory.GetFiles(menuPath_local, "*.jpg")
|
||||
.Select(f => new FileInfo(f))
|
||||
.ToDictionary(f => f.Name, f => f);
|
||||
foreach (var serverFile in serverFiles)
|
||||
{
|
||||
bool needsCopy = false;
|
||||
string localFilePath = Path.Combine(menuPath_local, serverFile.Key);
|
||||
if (!localFiles.ContainsKey(serverFile.Key))
|
||||
{
|
||||
needsCopy = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var localFile = localFiles[serverFile.Key];
|
||||
if (serverFile.Value.LastWriteTime > localFile.LastWriteTime)
|
||||
{
|
||||
needsCopy = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (needsCopy)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Copy(serverFile.Value.FullName, localFilePath, true);
|
||||
Console.WriteLine($"更新菜單: {serverFile.Key}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"複製菜單失敗 {serverFile.Key}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 3-2. 清除本地有但伺服器已經沒有的檔案
|
||||
foreach (var localFile in localFiles)
|
||||
{
|
||||
if (!serverFiles.ContainsKey(localFile.Key))
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(localFile.Value.FullName);
|
||||
Console.WriteLine($"刪除本地多餘菜單: {localFile.Key}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"刪除菜單失敗 {localFile.Key}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void news_check()
|
||||
{
|
||||
string newsPath = @"\\SVR01\news";
|
||||
string newsPath_local = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "news");
|
||||
|
||||
if (!Directory.Exists(newsPath_local))
|
||||
{
|
||||
Directory.CreateDirectory(newsPath_local);
|
||||
}
|
||||
var serverFiles = Directory.GetFiles(newsPath, "*.jpg")
|
||||
.Select(f => new FileInfo(f))
|
||||
.ToDictionary(f => f.Name, f => f);
|
||||
|
||||
var localFiles = Directory.GetFiles(newsPath_local, "*.jpg")
|
||||
.Select(f => new FileInfo(f))
|
||||
.ToDictionary(f => f.Name, f => f);
|
||||
foreach (var serverFile in serverFiles)
|
||||
{
|
||||
bool needsCopy = false;
|
||||
string localFilePath = Path.Combine(newsPath_local, serverFile.Key);
|
||||
if (!localFiles.ContainsKey(serverFile.Key))
|
||||
{
|
||||
needsCopy = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var localFile = localFiles[serverFile.Key];
|
||||
if (serverFile.Value.LastWriteTime > localFile.LastWriteTime)
|
||||
{
|
||||
needsCopy = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (needsCopy)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Copy(serverFile.Value.FullName, localFilePath, true);
|
||||
Console.WriteLine($"更新新聞: {serverFile.Key}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"複製新聞失敗 {serverFile.Key}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 3-2. 清除本地有但伺服器已經沒有的檔案
|
||||
foreach (var localFile in localFiles)
|
||||
{
|
||||
if (!serverFiles.ContainsKey(localFile.Key))
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(localFile.Value.FullName);
|
||||
Console.WriteLine($"刪除本地多餘新聞: {localFile.Key}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"刪除新聞失敗 {localFile.Key}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user