public static void BuildFileIndex() { string resPath = (ResourcePath.GetBaseURL() + UUtility.GetPlatformName() + "/").Remove(0, 7); ///----------------------创建文件列表----------------------- string newFilePath = resPath + "files.txt"; if (File.Exists(newFilePath)) { File.Delete(newFilePath); } paths.Clear(); files.Clear(); Recursive(resPath); FileStream fs = new FileStream(newFilePath, FileMode.CreateNew); StreamWriter sw = new StreamWriter(fs); for (int i = 0; i < files.Count; i++) { string file = files[i]; string ext = Path.GetExtension(file); if (file.EndsWith(".meta") || file.Contains(".DS_Store") || file.Contains(".exe")) { continue; } string md5 = LuaUtil.md5file(file); string value = file.Replace(resPath, string.Empty); sw.WriteLine(value + "|" + md5 + "|" + filesLength[i]); } sw.Close(); fs.Close(); }
/** * 移動、サイズ変更、色変更 * 移動開始位置、終了位置、経過フレームから現在の値を計算する * @return true:移動中 */ public bool autoMoving() { if (!isMoving) { return(false); } movingFrame++; if (movingFrame >= movingFrameMax) { // 移動完了 if (isMovingPos) { setPos(dstPos); } if (isMovingSize) { setSize(dstSize.Width, dstSize.Height); } isMoving = false; isMovingPos = false; isMovingSize = false; updateRect(); endMoving(); } else { // 移動中 // ratio 0.0(始点) -> 1.0(終点) float ratio = (float)movingFrame / (float)movingFrameMax; switch (movingType) { case MovingType.UniformMotion: break; case MovingType.Acceleration: ratio = UUtility.toAccel(ratio); break; case MovingType.Deceleration: ratio = UUtility.toDecel(ratio); break; } if (isMovingPos) { setPos(srcPos.X + ((dstPos.X - srcPos.X) * ratio), srcPos.Y + ((dstPos.Y - srcPos.Y) * ratio)); } if (isMovingSize) { setSize((int)(srcSize.Width + (dstSize.Width - srcSize.Width) * ratio), (int)(srcSize.Height + (dstSize.Height - srcSize.Height) * ratio)); } } return(true); }
public static bool ConvertToBinaryXml(string path) { //if (path.StartsWith(Application.dataPath)) { string saveToDir = ResourcePath.GetLocalConfigPath(); if (!Directory.Exists(saveToDir)) { Directory.CreateDirectory(saveToDir); } if (path.ToLower().EndsWith(".xml")) { try { FileInfo fileInfo = new FileInfo(path); string fileName = fileInfo.Name.Substring(0, fileInfo.Name.Length - fileInfo.Extension.Length); TbXmlSerializer serializer = new TbXmlSerializer(); path = path.Replace(Application.dataPath, ""); path = "Assets/Config/" + path; byte[] bytes = serializer.SerializeXmlString((AssetDatabase.LoadMainAssetAtPath(path) as TextAsset).text); string topath = Path.Combine(Path.Combine("../ClientRes", UUtility.GetPlatformName() + "/config/"), ""); topath = topath + fileName + ".bytes"; File.WriteAllBytes(topath, bytes); return(true); } catch (System.Exception exception) { Debug.LogError("Error:" + path); //Debug.LogError(exception.Message); //Debug.LogError(exception.StackTrace); //Debug.LogError(""); } } else { if (!path.ToLower().EndsWith(".meta")) { FileInfo fileInfo = new FileInfo(path); File.Copy(path, saveToDir + "/" + fileInfo.Name, true); return(true); } } } return(false); }
/** * ヘッダ部分からファイルのエンコードタイプを取得する * * @input inputFilePath: LogViewのファイルパス * @output エンコードの種類 */ public static Encoding GetEncodingText(string inputFilePath) { bool isHeader = false; int count = 0; Encoding encoding = Encoding.UTF8; using (StreamReader sr = new StreamReader(inputFilePath)) { // ヘッダ部分を読み込む <head>~</head> while (sr.Peek() >= 0) { // ファイルを 1 行ずつ読み込む string line = sr.ReadLine().Trim(); // <head>の行が見つかるまではスキップ if (isHeader == false) { if (line.Equals("<head>")) { isHeader = true; } } else { if (line.Equals("</head>")) { break; } // エンコード種別 if (line.Contains("encoding:")) { string[] splitted = line.Split(':'); if (splitted.Length >= 2) { encoding = UUtility.GetEncodingFromStr(splitted[1].ToLower()); } } } count++; if (count > 100) { // ファイルの先頭部分に見つからなかったので打ち切り break; } } return(encoding); } } // GetEncoding()
/** * バイナリログのヘッダ部分を取得 * @input fs : ファイルオブジェクト * */ private void ReadLogHeadBin(UFileStream fs) { // 文字コードを取得 string encStr = fs.GetSizeString(); this.encoding = UUtility.GetEncodingFromStr(encStr); fs.EncodingType = encoding; // ログID情報 logIDs = ReadLogIDsBin(fs); // レーン情報 lanes = ReadLogLanesBin(fs); // アイコン画像 images = ReadLogImagesBin(fs); // ログIDの画像を設定する foreach (LogID logId in logIDs) { logId.Image = images.GetImage(logId.ImageName); } }