public void Release() { using (_rwLock.GetWriteLock()) { if (_released || !_folder.FileExists(_path)) { // nothing to do, might happen if re-granted or already released return; } _released = true; // check it has not been granted in the meantime var current = _folder.ReadFile(_path); if (current == _content) { _folder.DeleteFile(_path); } } }
public void Release() { using (_rwLock.GetWriteLock()) { if (_released || !File.Exists(_folder.MapPath(_path))) { // nothing to do, might happen if re-granted or already released // INFO: VirtualPathProvider caches file existence info, so not very reliable here. return; } _released = true; // check it has not been granted in the meantime var current = _folder.ReadFile(_path); if (current == _content) { _folder.DeleteFile(_path); } } }