rokojori_action_library/Runtime/Files/GDFilesSync.cs

45 lines
1.1 KiB
C#

using System;
using Godot;
namespace Rokojori;
public class GDFilesSync
{
public static void SaveJSON( string path, object data )
{
SaveUTF8( path, JSON.StringifyObject( data ) );
}
public static T LoadJSON<T>( string path ) where T:new()
{
return JSON.ParseObject<T>( LoadUTF8( path ) );
}
public static void SaveUTF8( string path, string data )
{
using var fileAccess = FileAccess.Open( path, FileAccess.ModeFlags.Write );
fileAccess.StoreString( data );
fileAccess.Close();
}
public static string LoadUTF8( string path )
{
using var fileAccess = FileAccess.Open( path, FileAccess.ModeFlags.Read );
return fileAccess.GetAsText( );
}
public static void SaveBytes( string path, byte[] data )
{
using var fileAccess = FileAccess.Open( path, FileAccess.ModeFlags.Write );
fileAccess.StoreBuffer( data );
fileAccess.Close();
}
public static byte[] LoadBytes( string path )
{
using var fileAccess = FileAccess.Open( path, FileAccess.ModeFlags.Read );
return fileAccess.GetBuffer( (long) fileAccess.GetLength() );
}
}