Editor/sandmod.libraryplus/Library/LibraryFileSystem.cs
using System;
using System.IO;
namespace LibraryPlus;
public abstract class LibraryFileSystem
{
internal LibraryFileSystem( Func<string, string> path )
{
Assets = new DirectoryInfo( path( "Assets" ) );
Code = new DirectoryInfo( path( "Code" ) );
Editor = new DirectoryInfo( path( "Editor" ) );
UnitTests = new DirectoryInfo( path( "UnitTests" ) );
Settings = new DirectoryInfo( path( "Settings" ) );
}
public DirectoryInfo Assets { get; }
public DirectoryInfo Code { get; }
public DirectoryInfo Editor { get; }
public DirectoryInfo UnitTests { get; }
public DirectoryInfo Settings { get; }
internal void Move( LibraryFileSystem target )
{
Assets.MoveIfNeeded( target.Assets.FullName );
Code.MoveIfNeeded( target.Code.FullName );
Editor.MoveIfNeeded( target.Editor.FullName );
UnitTests.MoveIfNeeded( target.UnitTests.FullName );
Directory.CreateDirectory( target.Settings.FullName );
foreach ( var file in Settings.GetFiles() )
{
file.MoveTo( Path.Combine( target.Settings.FullName, file.Name ) );
}
Directory.Delete( Settings.FullName, true );
}
internal void Delete()
{
Assets.DeleteIfNeeded( true );
Code.DeleteIfNeeded( true );
Editor.DeleteIfNeeded( true );
UnitTests.DeleteIfNeeded( true );
Settings.DeleteIfNeeded( true );
}
}