c# 保存文件 - 断电过程中保存文件丢失

public static class FileSafeWrite
    {
        public static void WriteAllTextAtomically(string filePath, string content)
        {
            // 定义临时文件路径
            string tempFilePath = filePath + ".tmp";

            // 将内容写入临时文件
            FileStream fs = new FileStream(tempFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
            var contentByte = Encoding.UTF8.GetBytes(content);
            fs.Write(contentByte);
            fs.Flush(true); // 参数 true 会调用 FlushFileBuffers,强制写入磁盘
            fs.Close();

            // 替换原始文件
            if (File.Exists(filePath))
            {
                File.Replace(tempFilePath, filePath, null);
            }
            else
            {
                File.Move(tempFilePath, filePath);
            }

            if (File.Exists(tempFilePath))
            {
                File.Delete(tempFilePath);
            }
        }
    }
posted @ 2025-09-22 15:05  Hey,Coder!  阅读(12)  评论(0)    收藏  举报