src/dotnet/RiderPlugin.UnrealLink/Utils/FsUtils.cs (34 lines of code) (raw):

using System; using JetBrains.Util; namespace RiderPlugin.UnrealLink.Utils { public class DeleteTempFolders : IDisposable { private readonly VirtualFileSystemPath myTempFolder; public DeleteTempFolders(VirtualFileSystemPath tempFolder) { myTempFolder = tempFolder; } public void Dispose() { myTempFolder.Delete(); } } public class BackupDir { private readonly VirtualFileSystemPath myOldDir; private readonly VirtualFileSystemPath myBackupDir; public BackupDir(VirtualFileSystemPath oldDir, string backupFolderPrefix) { myOldDir = oldDir; myBackupDir = VirtualFileSystemDefinition.CreateTemporaryDirectory(InteractionContext.SolutionContext, null, backupFolderPrefix); myOldDir.CopyDirectory(myBackupDir); myOldDir.Delete(); } public void Restore() { myOldDir.Delete(); myBackupDir.CopyDirectory(myOldDir); } } }