diff options
| author | Thomas Guillemard <thog@protonmail.com> | 2019-02-14 01:44:39 +0100 |
|---|---|---|
| committer | jduncanator <1518948+jduncanator@users.noreply.github.com> | 2019-02-14 11:44:39 +1100 |
| commit | b126ea48c63a3de8da8f3b817860c0323f2621ef (patch) | |
| tree | eb58d7b31719050da390e2b79824d6e931b85da8 /Ryujinx.HLE/FileSystem/FileSystemProvider.cs | |
| parent | 7e9f5555747315d142e1ae20266cb581647db0cd (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.cs | 30 |
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 + }; + } } } |
