diff options
Diffstat (limited to 'Ryujinx.HLE/FileSystem')
| -rw-r--r-- | Ryujinx.HLE/FileSystem/FileSystemProvider.cs | 30 | ||||
| -rw-r--r-- | Ryujinx.HLE/FileSystem/IFileSystemProvider.cs | 3 | ||||
| -rw-r--r-- | Ryujinx.HLE/FileSystem/PFsProvider.cs | 5 | ||||
| -rw-r--r-- | Ryujinx.HLE/FileSystem/RomFsProvider.cs | 5 |
4 files changed, 43 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 + }; + } } } diff --git a/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs b/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs index 8e2cae64..82cdebd9 100644 --- a/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs +++ b/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs @@ -1,5 +1,6 @@ using Ryujinx.HLE.HOS; using Ryujinx.HLE.HOS.Services.FspSrv; +using System; namespace Ryujinx.HLE.FileSystem { @@ -36,5 +37,7 @@ namespace Ryujinx.HLE.FileSystem long GetFreeSpace(ServiceCtx context); long GetTotalSpace(ServiceCtx context); + + FileTimestamp GetFileTimeStampRaw(string name); } } diff --git a/Ryujinx.HLE/FileSystem/PFsProvider.cs b/Ryujinx.HLE/FileSystem/PFsProvider.cs index fdddc9b0..69e7a9b8 100644 --- a/Ryujinx.HLE/FileSystem/PFsProvider.cs +++ b/Ryujinx.HLE/FileSystem/PFsProvider.cs @@ -143,5 +143,10 @@ namespace Ryujinx.HLE.FileSystem { throw new NotSupportedException(); } + + public FileTimestamp GetFileTimeStampRaw(string name) + { + throw new NotImplementedException(); + } } } diff --git a/Ryujinx.HLE/FileSystem/RomFsProvider.cs b/Ryujinx.HLE/FileSystem/RomFsProvider.cs index 86bf2348..f64d99c7 100644 --- a/Ryujinx.HLE/FileSystem/RomFsProvider.cs +++ b/Ryujinx.HLE/FileSystem/RomFsProvider.cs @@ -160,5 +160,10 @@ namespace Ryujinx.HLE.FileSystem { throw new NotSupportedException(); } + + public FileTimestamp GetFileTimeStampRaw(string name) + { + throw new NotImplementedException(); + } } } |
