public void UpdateChampionStyleListAsync(ChampionStyle champStyle) { string json_out = JsonConvert.SerializeObject(champStyle, Formatting.Indented); //byte[] buffer = Encoding.UTF8.GetBytes(json_out); //var buffer = Encoding.UTF8.GetBytes(json_out); while (IO_Related.IsFileLocked(new FileInfo(UserDataConstant.GetChampionStylePerSessFilePath(champStyle.sessID)), FileMode.Open, FileAccess.Write)) { } System.IO.File.WriteAllText(UserDataConstant.GetChampionStylePerSessFilePath(champStyle.sessID), json_out); //using (var fs = System.IO.File.Open(UserDataConstant.GetChampionStylePerSessFilePath(champStyle.sessID), FileMode.Open)) //{ // await fs.WriteAsync(buffer); //} }
public static async Task GenerateChampionStyleFileAsync(string sessID, string path) { //init style per session string[] champion_name = Directory.GetFiles(UserDataConstant.ChampionSquareDir).Select(s => Path.GetFileName(s).Replace("_", "").Replace("Square.png", "").ToLower()).ToArray(); //Util.Generate.SerializeStyleDic(champion_name, StylePerSess_path); ChampionStyle ch = GenerateStyle(sessID, champion_name); string json_in = JsonConvert.SerializeObject(ch, Formatting.Indented); byte[] tmp = Encoding.ASCII.GetBytes(json_in); while (IO_Related.IsFileLocked(new FileInfo(path), FileMode.Create, FileAccess.Write)) { } using (var fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.Write)) { await fs.WriteAsync(tmp); } }
public ChampionStyle GetChampionStyleListAsync(string id) { //byte[] buffer=new byte[20000]; while (IO_Related.IsFileLocked(new FileInfo(UserDataConstant.GetChampionStylePerSessFilePath(id)), FileMode.Open, FileAccess.Read)) { } //using (var fs = System.IO.File.Open(UserDataConstant.GetChampionStylePerSessFilePath(id), FileMode.Open, FileAccess.Read)) //{ // await fs.ReadAsync(buffer); //} //string json_out = Encoding.UTF8.GetString(buffer); string json_out = System.IO.File.ReadAllText(UserDataConstant.GetChampionStylePerSessFilePath(id)); ChampionStyle result = JsonConvert.DeserializeObject <ChampionStyle>(json_out); return(result); }