36 lines
1008 B
C#
36 lines
1008 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SuperTiled2Unity.Editor
|
|
{
|
|
// Note: It is *very* important you do not call any Unity asset database functions while charning the working directory
|
|
internal class ChDir : IDisposable
|
|
{
|
|
private string m_NewFolderPath;
|
|
private string m_OldFolderPath;
|
|
|
|
public static ChDir FromFilename(string filename)
|
|
{
|
|
var directory = Path.GetDirectoryName(filename);
|
|
directory = Path.GetFullPath(directory);
|
|
return new ChDir(directory);
|
|
}
|
|
|
|
private ChDir(string absFolderPath)
|
|
{
|
|
m_OldFolderPath = Directory.GetCurrentDirectory();
|
|
m_NewFolderPath = absFolderPath;
|
|
Directory.SetCurrentDirectory(m_NewFolderPath);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Directory.SetCurrentDirectory(m_OldFolderPath);
|
|
}
|
|
}
|
|
}
|