/// <summary> /// 保存压缩包,中途不要保存 /// </summary> /// <param name="tableName"></param> /// <param name="success">false:放弃修改,直接关闭。true:先保存到缓存,完成后覆盖到当前</param> public void EndUpdate(string tableName, bool success) { DiskReadZip_ConnectInfo conn = CheckConnection(tableName); if (success) { conn.Save();//代价是否大了点? } else { //conn.Rollback();//放弃 重新打开 conn.Close();//放弃,关闭 } //(file as IRQ_FileTable).m_trans = null; }
/// <summary> /// 一般不使用 /// </summary> /// <param name="tableName"></param> /// <param name="newName"></param> public void RenameFileTable(string tableName, string newName) { if (string.IsNullOrEmpty(tableName)) { throw new ArgumentNullException(tableName); } if (string.IsNullOrEmpty(newName)) { throw new ArgumentNullException(tableName); } if (string.Compare(tableName, newName, true) == 0) { return; //没有更改,返回 } try { if (!IsTableExists(tableName)) { return; } DiskReadZip_ConnectInfo m_Conn = CheckConnection(tableName); m_Conn.Save();//保存一下 if (IsTableExists(newName)) { throw new DiskZip_AccessPackerException("重命名失败,newName已经存在!", null); DelFileTable(newName);//覆盖吗? } //移除老的 // File.Copy(_GetTableFileFullPath(tableName), _GetTableFileFullPath(newName), true); DelFileTable(tableName);//删除老文件 //新文件要外面自己打开 } catch (Exception ee) { throw new DiskZip_AccessPackerException("访问文件目录时发生错误", ee); } }