private void butSelectFile_Click(object sender, EventArgs e) { opFile.ShowDialog(); if (opFile.FileNames.Length > 0) { SelectFiles = new List <FileInfo>(); IList <UFileInfo> ufiles = new List <UFileInfo>(); foreach (string sfile in opFile.FileNames) { FileInfo fInfo = new FileInfo(sfile); if (fInfo.Exists) { UFileInfo ufile = new UFileInfo(); ufile.CreateTime = fInfo.CreationTime; ufile.FileFullName = fInfo.FullName; ufile.FileName = fInfo.Name; ufiles.Add(ufile); SelectFiles.Add(fInfo); folderBrows.SelectedPath = fInfo.Directory.FullName; } } dataGridView1.DataSource = ufiles; } else { SelectFiles = new List <FileInfo>(); } }
public UFileInfo OnGetFile(string name) { name = name.Replace("\\", "/"); if (dFiles.ContainsKey(name)) { return(dFiles[name]); } if (File.Exists(Utils.ConfigSaveDir + name)) { var fi = new UFileInfo(name, Utils.GetMD5HashFromFile(Utils.ConfigSaveDir + name)); dFiles.Add(name, fi); return(fi); } return(null); }
bool refreshCloudTreeView() { //string receiveFileList = UAgent.exec(cmdPreset.getFileList()); string receiveFileList = UAgent.exeGetFileList(); var ufileInfoList = UFileInfo.importByReceiveString(receiveFileList); if (ufileInfoList == null) { uilog.error("不存在该bucket"); return(false); } cloudFileTree = new FolderTree(ufileInfoList); cloudTreeView.ItemsSource = null; cloudTreeView.ItemsSource = cloudFileTree.root.children; return(true); }
public UFileInfo OnGetFile(string name) { name = name.Replace("\\", "/"); if (dFiles.ContainsKey(name)) { return(dFiles[name]); } if (File.Exists(Utils.ConfigSaveDir + name)) { var cv = UFileInfo.CachedVersion(name); var fi = new UFileInfo(name, string.IsNullOrEmpty(cv) ? Utils.GetMD5HashFromFile(Utils.ConfigSaveDir + name) : cv); dFiles.Add(name, fi); return(fi); } return(null); }
//本地文件列表检查 IEnumerator DoLocalFileListCheck() { string ifsDir = JW.Res.FileUtil.GetIFSExtractPath(); //ToDO 二进制读取列表方式 string flpath = JW.Res.FileUtil.CombinePath(ifsDir, this._fileListFileName); if (JW.Res.FileUtil.IsFileExist(flpath)) { string localFlStr = System.Text.UTF8Encoding.UTF8.GetString(JW.Res.FileUtil.ReadFile(flpath)); _localFileList = UnityEngine.JsonUtility.FromJson <UFileInfoList>(localFlStr); localFlStr = null; if (_localFileList == null) { JW.Common.Log.LogE("IFSUpdateChecker Local File List File Error"); _isLocalOk = false; } } else { _localFileList = null; _isLocalOk = false; } yield return(null); if (_localFileList != null) { int totalCnt = _localFileList.FileList.Count; float totalCnt2 = (float)totalCnt; for (int i = 0; i < totalCnt; i++) { UFileInfo uf = _localFileList.FileList[i]; string filePath = JW.Res.FileUtil.CombinePath(ifsDir, uf.FileName); string fileMd5 = JW.Res.FileUtil.GetFileMd5ByFileStream(filePath); if (!fileMd5.Equals(uf.MD5Num, System.StringComparison.CurrentCultureIgnoreCase)) { JW.Common.Log.LogE("IFSUpdateChecker Local Res File Hacked:" + uf.FileName); //设置00000 重新下载 uf.MD5Num = "000000"; } if (i % 2 == 0) { yield return(null); } } } yield return(null); }
//本地文件列表检查 IEnumerator DoLocalFileListCheck() { string ifsDir = JW.Res.FileUtil.GetIFSExtractPath(); //ToDO 二进制读取列表方式 string flpath = JW.Res.FileUtil.CombinePath(ifsDir, _curSession.FileListFileName); if (JW.Res.FileUtil.IsFileExist(flpath)) { string localFlStr = System.Text.UTF8Encoding.UTF8.GetString(JW.Res.FileUtil.ReadFile(flpath)); _localFileList = UnityEngine.JsonUtility.FromJson <UFileInfoList>(localFlStr); localFlStr = null; } else { _errorCnt++; _localFileList = null; } yield return(null); if (_localFileList != null) { int totalCnt = _localFileList.FileList.Count; float totalCnt2 = (float)totalCnt; for (int i = 0; i < totalCnt; i++) { UFileInfo uf = _localFileList.FileList[i]; string filePath = JW.Res.FileUtil.CombinePath(ifsDir, uf.FileName); string fileMd5 = JW.Res.FileUtil.GetFileMd5ByFileStream(filePath); if (!fileMd5.Equals(uf.MD5Num)) { JW.Common.Log.LogE("Local Res File Hacked:" + uf.FileName); //设置00000 重新下载 uf.MD5Num = "000000"; } if (i % 2 == 0) { CallSessionHandler(IFSState.LocalFileListInit, i / totalCnt2); yield return(null); } } } CallSessionHandler(IFSState.LocalFileListInit, 1.0f); yield return(null); }
/// <summary> /// 生成当前目录的文件列表 json /// </summary> /// <param name="workDir">工作目录</param> public static void GenerateFileList(string ifsBuildDir, string outName, string buildSvnResNum = "0") { // if (!JW.Res.FileUtil.IsDirectoryExist(ifsBuildDir)) { JW.Common.Log.LogE("UpdateBuilder-->Not Exist WorkDir:" + ifsBuildDir); } UFileInfoList fileList = new UFileInfoList(); fileList.ResVersion = buildSvnResNum; fileList.ListType = UFileInfoListType.MainGame; // string[] files = Directory.GetFiles(ifsBuildDir, "*", SearchOption.AllDirectories); for (int i = 0; i < files.Length; i++) { string path = files[i]; string ext = JW.Res.FileUtil.GetExtension(path); if (ext.StartsWith(".svn") || ext.StartsWith(".manifest")) { continue; } string relativePath = JW.Res.FileUtil.GetRelativePath(path, ifsBuildDir); UFileInfo uf = new UFileInfo(); uf.FileName = relativePath; uf.MD5Num = JW.Res.FileUtil.GetFileMd5(path.Replace('\\', '/')); uf.SvnVerNum = buildSvnResNum; uf.FileSize = JW.Res.FileUtil.GetFileLength(path.Replace('\\', '/')); // fileList.AddUFile(ref uf); } //生成json string jss = UnityEngine.JsonUtility.ToJson(fileList); UTF8Encoding en = new UTF8Encoding(); JW.Res.FileUtil.WriteFile(JW.Res.FileUtil.CombinePath(ifsBuildDir, outName), en.GetBytes(jss)); JW.Common.Log.LogD("------>GenerateFileList Done<-----"); }