public FileTaskStatus ValidateData() { var response = new FileTaskStatus(); var stream = (MemoryStream)MemoryCacheManager.MemoryCache.Get(fileName); using (var reader = ExcelReaderFactory.CreateReader(stream)) { //// Use the AsDataSet extension method //studentData = reader.AsDataSet(GetExcelDataSetConfig()); //List<string> badSheets = new List<string>(); //if (VerifyColumnHeaders(studentData, badSheets)) //{ // response.Success = true; // response.Message = $"File was opened and in the correct format"; //} //else //{ // response.Success = false; // response.Message = $"File was opened but one or more sheets have invalid coumns. { string.Join(", ", badSheets)}"; // response.Data = badSheets; //} } return(response); }
public FileTaskStatus ReadFile(string path) { var response = new FileTaskStatus(); FileInfo fileInfo = new FileInfo(path); fileName = fileInfo.Name; if (fileInfo.Exists) { using (var stream = File.Open(path, FileMode.Open, FileAccess.Read)) { MemoryStream memStream = new MemoryStream(); memStream.SetLength(stream.Length); stream.Read(memStream.GetBuffer(), 0, (int)stream.Length); IMemoryCache memoryCache = MemoryCacheManager.MemoryCache; memoryCache.Set(fileInfo.Name, memStream); } response.Success = true; response.Message = $"File saved in cache {fileName}"; } else { response.Success = false; response.Message = $"File does not exist {fileName}"; } return(response); }
/// <summary> /// /// </summary> /// <param name="task"></param> private void TransferSingleTaskBigFile(FileTask task) { /// 请求 server 端打开文件, 并获取 FileStreamId task.FileStreamId = GetFileStreamId(task); if (task.FileStreamId == -1) { task.Status = FileTaskStatus.Failed; Record.CurrentTaskIndex++; return; } /// 创建本地 FileStream localFileStream = new FileStream(task.LocalPath, FileMode.OpenOrCreate, task.Type == TransferType.Upload ? FileAccess.Read : FileAccess.Write); /// 运行下载子线程 FileTaskStatus result = RunTransferSubThreads(task); /// 结束 Transfer, 关闭 FileStream localFileStream.Close(); localFileStream = null; /// 请求server端关闭并释放文件 try { SocketClient sc = SocketFactory.GenerateConnectedSocketClient(task, 1); if (task.Type == TransferType.Upload) { sc.SendBytes(SocketPacketFlag.UploadPacketRequest, new byte[1], task.FileStreamId, -1); } else { sc.SendHeader(SocketPacketFlag.DownloadPacketRequest, task.FileStreamId, -1); } sc.Close(); } catch (Exception ex) { Logger.Log("Transfer finished. But server FileStream not correctly closed. " + ex.Message, LogLevel.Warn); } /// 判断从子线程退出返回原因是否是 Pause if (IsStopDownloading) { task.Status = FileTaskStatus.Pause; } else { task.Status = result; } }
public void OnUsersDataReaderEventStatus(string fname, FileDataType dtype, FileTaskStatus status, object data) { //检查是否当前文件 { switch (status) { case FileTaskStatus.Progressing: { break; } case FileTaskStatus.Success: { { JObject jdata = data as JObject; int vercode = JsonHelper.GetInteger(jdata, ClientConfig.KEY_DATA_VERSION_CODE); UsersData _usersData = new UsersData(jdata, vercode); //对旧数据整体迁移加密之后回存; if (vercode != ClientConfig.DataVersionCode) { fname = string.Format("{0}/{1}.txt", Application.dataPath + filePath, "userinfo"); if (File.Exists(fname)) { File.Delete(fname); } fname = string.Format("{0}/{1}.ts", Application.dataPath + filePath, "userinfo"); FileManager.Instance.AsyncWriteEncryptZipJsonObject(fname, _usersData.Serialize(ClientConfig.DataVersionCode), null); } Debug.LogError("_usersData:" + _usersData.CurrentUserID); //ApplicationUI.Instance.closeWindowObject(WINDOWOBJECT_TYPE.PROGRESSWINDOW, SHOW_EFFECT.NONE, true); } break; } case FileTaskStatus.Failed: { //*_*ApplicationUI.Instance.closeWindowObject(WINDOWOBJECT_TYPE.PROGRESSWINDOW, SHOW_EFFECT.NONE, true); //*_*PromptManager.Instance.ShowPrompt(5019, null, null, null); break; } } } }