开发中有时会遇到要对文件进行共享状态的读写操作,代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System.IO; using System.Text; namespace LucienBao.Commons { public static class FileHelper { public static string ShareRead(string file, Encoding encoding) { string content = string.Empty; FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); try { if (fs.CanRead) { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); content = encoding.GetString(buffer); } } finally { fs.Close(); fs.Dispose(); } return content; } public static void ShareAppend(string content, string file, Encoding encoding) { ShareWrite(content, file, encoding, FileMode.Append); } public static void ShareWrite(string content, string file, Encoding encoding, FileMode fileMode) { FileStream fs = new FileStream(file, fileMode, FileAccess.Write, FileShare.Read); try { if (fs.CanWrite) { byte[] buffer = encoding.GetBytes(content); if (buffer.Length > 0) { fs.Write(buffer, 0, buffer.Length); fs.Flush(); } } } finally { fs.Close(); fs.Dispose(); } } } }