コード例 #1
0
        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>();
            }
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }
コード例 #4
0
 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);
 }
コード例 #5
0
        //本地文件列表检查
        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);
        }
コード例 #6
0
        //本地文件列表检查
        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);
        }
コード例 #7
0
        /// <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<-----");
        }