SecondBot/Shared/IO/SimpleIO.cs
Madpeterz f3ab320a28 Update SimpleIO.cs
improves IO controler
2021-05-18 06:21:10 +01:00

112 lines
4.1 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;
if (DirExists(root_folder) == false)
{
System.IO.Directory.CreateDirectory(root_folder);
}
}
public static bool DirExists(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) == true)
{
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(JsonCustomRelaysSet 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 WriteJsonAdverts(advertsBlob adverts, 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, adverts);
}
public void MarkOld(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 "";
}
}
}