namespace Remiss.Core.Security; /// /// Bäst-möjliga radering av filer som innehållit patientdata: skriv över /// innehållet en gång och radera. Inte forensiskt vattentätt på SSD/kopiering, /// men höjer ribban och håller filerna ur "återställ borttaget"-listor. /// public static class SecureFile { public static void Shred(string path) { try { if (!File.Exists(path)) return; var length = new FileInfo(path).Length; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.None)) { var buffer = new byte[81920]; long written = 0; while (written < length) { var chunk = (int)Math.Min(buffer.Length, length - written); fs.Write(buffer, 0, chunk); written += chunk; } fs.Flush(flushToDisk: true); } File.Delete(path); } catch { // Sista utväg: se till att filen åtminstone försvinner. try { File.Delete(path); } catch { /* ignore */ } } } }