This commit is contained in:
gdkchan 2018-02-04 20:08:20 -03:00
commit b7e1d9930d
230 changed files with 17548 additions and 0 deletions

65
Ryujinx/VirtualFs.cs Normal file
View file

@ -0,0 +1,65 @@
using System;
using System.IO;
namespace Ryujinx
{
class VirtualFs : IDisposable
{
private const string BasePath = "Fs";
private const string SavesPath = "Saves";
public Stream RomFs { get; private set; }
public void LoadRomFs(string FileName)
{
RomFs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
}
internal string GetFullPath(string BasePath, string FileName)
{
if (FileName.StartsWith('/'))
{
FileName = FileName.Substring(1);
}
string FullPath = Path.GetFullPath(Path.Combine(BasePath, FileName));
if (!FullPath.StartsWith(GetBasePath()))
{
return null;
}
return FullPath;
}
internal string GetGameSavesPath()
{
string SavesDir = Path.Combine(GetBasePath(), SavesPath);
if (!Directory.Exists(SavesDir))
{
Directory.CreateDirectory(SavesDir);
}
return SavesDir;
}
internal string GetBasePath()
{
return Path.Combine(Directory.GetCurrentDirectory(), BasePath);
}
public void Dispose()
{
Dispose(true);
}
protected virtual void Dispose(bool disposing)
{
if (disposing && RomFs != null)
{
RomFs.Dispose();
}
}
}
}