雖然這個Blog是藉由GitHub Pages代管,不過像是md檔和其他資料不是說要復原就復原的,要復原還要經過一段步驟,早上實作了一次實在是搞得頭很昏,找時間在照著教學做一次並把過程記錄下來以備不時之需。
養成備份習慣是很重要的,不然資料不見了去資料救援還不一定能把資料救回來,所以我要讓我這Blog的檔案做個每日備份到雲端裡面。
首先看了一下這資料夾的檔案非常瑣碎,才93M的空間卻有14392個檔案,這樣直接備份到雲端光同步就會耗掉相當大的資源,所以我的想法是把資料夾壓縮起來再備份到雲端就好了。
在專案中加入 System.IO.Compression.FileSystem 的元件參考,並使用命名空間
//使用的命名空間
using System.IO.Compression;
using System.IO;
static void Main(string[] args)
{
//起始路徑
string startPath = @"I:\Lynnblog";
//壓縮後的路徑
string zipPath = @"D:\Lynnblog_backup.zip";
//如果檔案存在先刪除,避免產生檔案已存在的例外
if (File.Exists(zipPath))
{
File.Delete(zipPath);
}
//壓縮檔案
ZipFile.CreateFromDirectory(startPath, zipPath);
}
//確定檔案存在才執行搬移,避免錯誤
if (File.Exists(zipPath))
{
//目標存放路徑
string destinationFile = @"C:\Users\Lynn\iCloudDrive\backup\Lynnblog_backup.zip";
//搬移,最後的true是覆蓋檔案的意思
File.Copy(zipPath, destinationFile, true);
//最後一樣把原本的壓縮檔刪除
File.Delete(zipPath);
}
}
建置好後使用工作排程器去執行該專案bin資料夾下的可執行檔就可以正常使用了! 現在先暫時這樣就好,以後如果心血來潮再一次備份多天一點順便弄個Log檔。
參考網址:
https://docs.microsoft.com/zh-tw/dotnet/api/system.io.compression.zipfile?redirectedfrom=MSDN&view=net-6.0 https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/file-system/how-to-copy-delete-and-move-files-and-folders