public void LoadAndCleanSwap(ESave eSave) { mSwapSpace.Init(); //mSwapSpace.Init(Path.Combine(GetArchiveRootDir(), "swap")); string dir = Load(eSave); if (!string.IsNullOrEmpty(dir)) { Archive.Header header = mCurArchive.GetHeader(); mSwapSpace.CopyFrom(dir, (fileInfo) => { try{ using (FileStream fs = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) { using (BinaryReader r = new BinaryReader(fs)) { Archive.Header other = new Archive.Header(); if (other.Read(r)) { if (header.IsMatch(other)) { return(true); } } } } }catch (System.Exception e) { Debug.LogWarning("[LoadAndCleanSwap]" + e); } return(false); }); } }
public bool Open() { try { string filePath = Archive.GetFilePath(mPath, mIndex.fileName); if (!File.Exists(filePath)) { Debug.LogError("file not exist:" + filePath); return(false); } mFileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); mReader = new BinaryReader(mFileStream); Archive.Header header = new Archive.Header(); if (!header.Read(mReader) || !header.IsMatch(mHeader)) { mReader.Close(); mReader = null; mFileStream.Close(); mFileStream = null; return(false); } mFileStream.Seek(mIndex.beginPos, SeekOrigin.Begin); return(true); } catch (Exception ex) { Debug.LogWarning(ex); return(false); } }