using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine.Gonbest.MagicCube;
namespace Thousandto.Core.Base
{
///
/// 资源修复记录的文件数据
///
public class RepairRecordFileData
{
//文件名
private const string CN_FILE_NAME = "RepairRecord.txt";
//用于分割的字符
private const char CN_SPLIT_CHAR = '\t';
//用于分割的字符串
private static char[] CN_SPLIT_CHAR_ARRAY = new char[] { CN_SPLIT_CHAR };
///
/// 记录修复次数 <名称,修复次数>
///
private Dictionary _repairDict = new Dictionary();
//文件路径
private string _filePath = "";
///
/// 获取某个文件修复的次数
///
///
///
public int GetRepairCount(string name)
{
if (_repairDict.ContainsKey(name))
{
return _repairDict[name];
}
else
{
name = ToLowerFileName(name);
if (_repairDict.ContainsKey(name))
return _repairDict[name];
}
return 0;
}
private string ToLowerFileName(string name)
{
int index = name.LastIndexOf("/");
if(index != -1)
{
var fileName = name.Substring(index).ToLower();
var dir = name.Substring(0, index);
name = dir + fileName;
}
return name;
}
//读数据
public void Read()
{
_filePath = PathUtils.GetWritePath(CN_FILE_NAME);
_repairDict.Clear();
if (File.Exists(_filePath))
{
var lines = System.IO.File.ReadAllLines(_filePath);
for (int i = 0; i < lines.Length; i++)
{
var arr = lines[i].Split(CN_SPLIT_CHAR_ARRAY, StringSplitOptions.RemoveEmptyEntries);
if (arr.Length == 2 && !string.IsNullOrEmpty(arr[0]))
{
int cnt;
if (int.TryParse(arr[1], out cnt))
{
_repairDict[arr[0]] = cnt;
}
}
}
}
}
}
}