/// <summary> /// Release a filelock /// </summary> /// <param name="fileHandle"></param> /// <param name="item"></param> public static void FilelockRelease(FileHandler fileHandle, IFuserFilesystemItem item) { try { if (fileHandle == null || item == null) { return; } FileLockManager lockMgr = item.Filelock; FileLockItem[] locks = null; lock (fileHandle) { locks = fileHandle.GetFileLockList(); } if (locks != null) { IFuserFilesystemDirectory dirItem = null; if (item is IFuserFilesystemDirectory) { dirItem = (IFuserFilesystemDirectory)item; } lock (lockMgr) { foreach (FileLockItem lItem in locks) { lockMgr.UnregisterLock(lItem); if (dirItem != null) { ReleaseBlockDeletePermission(dirItem, lItem); } } } } } catch { return; } }