首页 > 代码库 > 安全的文件访问方式
安全的文件访问方式
最近在学习SharpDevelop源代码,看到一处访问文件的很有美感的代码,特此供大家一起分享:
public sealed class CallbackOnDispose : IDisposable { Action callback; public CallbackOnDispose(Action callback) { if (callback == null) throw new ArgumentNullException("callback"); this.callback = callback; } public void Dispose() { Action action = Interlocked.Exchange(ref callback, null); if (action != null) { action(); #if DEBUG GC.SuppressFinalize(this); #endif } } #if DEBUG ~CallbackOnDispose() { Debug.Fail("CallbackOnDispose was finalized without being disposed."); } #endif }
此处定义一个实现IDisposable接口的回调方法的类。调用的时候如下:
using (LockPropertyFile())
{ using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
{ ms.WriteTo(fs); } }
public static IDisposable LockPropertyFile() { Mutex mutex = new Mutex(false); mutex.WaitOne(); return new CallbackOnDispose( delegate { mutex.ReleaseMutex(); mutex.Close(); }); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。