mirror of
https://github.com/Thealexbarney/LibHac.git
synced 2024-11-14 10:49:41 +01:00
42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
|
|||
|
namespace libhac
|
|||
|
{
|
|||
|
public class SdFs
|
|||
|
{
|
|||
|
public Keyset Keyset { get; }
|
|||
|
public string RootDir { get; }
|
|||
|
public string ContentsDir { get; }
|
|||
|
public string[] Files { get; }
|
|||
|
|
|||
|
public SdFs(Keyset keyset, string sdPath)
|
|||
|
{
|
|||
|
if (Directory.Exists(Path.Combine(sdPath, "Nintendo")))
|
|||
|
{
|
|||
|
RootDir = sdPath;
|
|||
|
Keyset = keyset;
|
|||
|
ContentsDir = Path.Combine(sdPath, "Nintendo", "Contents");
|
|||
|
}
|
|||
|
|
|||
|
Files = Directory.GetFiles(ContentsDir, "00", SearchOption.AllDirectories).Select(Path.GetDirectoryName).ToArray();
|
|||
|
}
|
|||
|
|
|||
|
public List<Nca> ReadAllNca()
|
|||
|
{
|
|||
|
List<Nca> ncas = new List<Nca>();
|
|||
|
foreach (var file in Files)
|
|||
|
{
|
|||
|
var sdPath = "/" + Util.GetRelativePath(file, ContentsDir).Replace('\\', '/');
|
|||
|
var nax0 = new Nax0(Keyset, file, sdPath);
|
|||
|
var nca = new Nca(Keyset, nax0.Stream);
|
|||
|
ncas.Add(nca);
|
|||
|
nca.Name = Path.GetFileName(file);
|
|||
|
}
|
|||
|
|
|||
|
return ncas;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|