SecondBot/Secondbot/Shared/IO/SimpleIO.cs
2021-02-14 01:21:35 +00:00

116 lines
4 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Newtonsoft.Json;
using BetterSecondBotShared.Json;
using BetterSecondBotShared.Static;
namespace BetterSecondBotShared.IO
{
public class SimpleIO
{
protected string root_folder = "";
public void ChangeRoot(string A)
{
root_folder = A + "/";
create_dir(root_folder);
}
public void create_dir(string target_folder)
{
if (dir_exists(root_folder) == false)
{
System.IO.Directory.CreateDirectory(root_folder);
}
}
public static bool dir_exists(string target_folder)
{
return System.IO.Directory.Exists(target_folder);
}
public void Delete(string filename)
{
System.IO.File.Delete(root_folder+filename);
}
public void writefile(string filename,string content)
{
if(Exists(filename))
{
Delete(filename);
}
System.IO.File.WriteAllText(@""+root_folder + "" + filename, content);
}
public void WriteJsonConfig(JsonConfig Config, string targetfile)
{
JsonSerializer serializer = new JsonSerializer();
using (StreamWriter sw = new StreamWriter(@""+root_folder + "" + targetfile))
using (JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, Config);
}
}
public void WriteJsonCommands(JsonCommandsfile commandsfile, string targetfile)
{
JsonSerializer serializer = new JsonSerializer();
using (StreamWriter sw = new StreamWriter(@"" + root_folder + "" + targetfile))
using (JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, commandsfile);
}
}
public void WriteJsonTokens(JsonScopedTokens tokensfile, string targetfile)
{
JsonSerializer serializer = new JsonSerializer();
using (StreamWriter sw = new StreamWriter(@"" + root_folder + "" + targetfile))
using (JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, tokensfile);
}
}
public void WriteJsonRelays(JsonCustomRelays relays, string targetfile)
{
JsonSerializer serializer = new JsonSerializer();
using (StreamWriter sw = new StreamWriter(@"" + root_folder + "" + targetfile))
using (JsonWriter writer = new JsonTextWriter(sw) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, relays);
}
}
public void makeOld(string targetfile)
{
System.IO.File.Move(@""+root_folder + "" + targetfile, @"" + root_folder + "" + targetfile+".old");
}
public bool Exists(string targetfile)
{
return File.Exists(@""+root_folder+"" + targetfile);
}
public static bool FileType(string targetfile, string matchtype)
{
string[] bits = targetfile.Split('.');
if (bits[^1] == matchtype)
{
return true;
}
return false;
}
public string ReadFile(string targetfile)
{
if (Exists(targetfile) == true)
{
string return_text = "";
using (var Stream = new FileStream(@"" + root_folder + "" + targetfile, FileMode.Open, FileAccess.Read))
using (var StreamReader = new StreamReader(Stream))
{
return_text = StreamReader.ReadToEnd();
}
return return_text;
}
return "";
}
}
}