aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/FileSystem/FileSystemProvider.cs
diff options
context:
space:
mode:
authorThomas Guillemard <thog@protonmail.com>2019-02-14 01:44:39 +0100
committerjduncanator <1518948+jduncanator@users.noreply.github.com>2019-02-14 11:44:39 +1100
commitb126ea48c63a3de8da8f3b817860c0323f2621ef (patch)
treeeb58d7b31719050da390e2b79824d6e931b85da8 /Ryujinx.HLE/FileSystem/FileSystemProvider.cs
parent7e9f5555747315d142e1ae20266cb581647db0cd (diff)
Support HomeBrew Loader (#577)
* Make it possibles to load hb-loader and hb-menu One issue remains with hb-menu homebrew icons because of SIMD issues (libjpeg-turbo related) and netloader doesn't work. * Implement GetApplicationControlData * Fix shared fonts for NSO/NRO * Add homebrew NRO romfs support This readd the NRO support by parsing the ASET header * Address comments about HomebrewRomFs * override Dispose in homebrew romfs stream * Use a struct for file timestamp * Simplify positional increments in GetApplicationControlData * Address comments * improve readability of the memory permission check in SetProcessMemoryPermission * Fix previous broken check * Add address space checks in SetProcessMemoryPermission
Diffstat (limited to 'Ryujinx.HLE/FileSystem/FileSystemProvider.cs')
-rw-r--r--Ryujinx.HLE/FileSystem/FileSystemProvider.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs
index a806c9ee..f5459eec 100644
--- a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs
+++ b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs
@@ -1,5 +1,6 @@
using Ryujinx.HLE.HOS;
using Ryujinx.HLE.HOS.Services.FspSrv;
+using Ryujinx.HLE.Utilities;
using System;
using System.Collections.Generic;
using System.IO;
@@ -279,5 +280,34 @@ namespace Ryujinx.HLE.FileSystem
throw new InvalidOperationException($"Path {path} is not a child directory of {_rootPath}");
}
+
+ public FileTimestamp GetFileTimeStampRaw(string name)
+ {
+ CheckIfDescendentOfRootPath(name);
+
+ DateTime creationDateTime = DateTime.UnixEpoch;
+ DateTime modifiedDateTime = DateTime.UnixEpoch;
+ DateTime lastAccessDateTime = DateTime.UnixEpoch;
+
+ if (File.Exists(name))
+ {
+ creationDateTime = File.GetCreationTime(name);
+ modifiedDateTime = File.GetLastWriteTime(name);
+ lastAccessDateTime = File.GetLastAccessTime(name);
+ }
+ else if (Directory.Exists(name))
+ {
+ creationDateTime = Directory.GetCreationTime(name);
+ modifiedDateTime = Directory.GetLastWriteTime(name);
+ lastAccessDateTime = Directory.GetLastAccessTime(name);
+ }
+
+ return new FileTimestamp
+ {
+ CreationDateTime = creationDateTime,
+ ModifiedDateTime = modifiedDateTime,
+ LastAccessDateTime = lastAccessDateTime
+ };
+ }
}
}