diff --git a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs index 452e5f1021..650ab402cc 100644 --- a/Ryujinx.HLE/FileSystem/FileSystemProvider.cs +++ b/Ryujinx.HLE/FileSystem/FileSystemProvider.cs @@ -282,28 +282,33 @@ namespace Ryujinx.HLE.FileSystem } - public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) + public FileTimestamp GetFileTimeStampRaw(string name) { CheckIfDescendentOfRootPath(name); - DateTime creationDate = DateTime.UnixEpoch; - DateTime modifiedDate = DateTime.UnixEpoch; - DateTime lastAccessDate = DateTime.UnixEpoch; + DateTime creationDateTime = DateTime.UnixEpoch; + DateTime modifiedDateTime = DateTime.UnixEpoch; + DateTime lastAccessDateTime = DateTime.UnixEpoch; if (File.Exists(name)) { - creationDate = File.GetCreationTime(name); - modifiedDate = File.GetLastWriteTime(name); - lastAccessDate = File.GetLastAccessTime(name); + creationDateTime = File.GetCreationTime(name); + modifiedDateTime = File.GetLastWriteTime(name); + lastAccessDateTime = File.GetLastAccessTime(name); } else if (Directory.Exists(name)) { - creationDate = Directory.GetCreationTime(name); - modifiedDate = Directory.GetLastWriteTime(name); - lastAccessDate = Directory.GetLastAccessTime(name); + creationDateTime = Directory.GetCreationTime(name); + modifiedDateTime = Directory.GetLastWriteTime(name); + lastAccessDateTime = Directory.GetLastAccessTime(name); } - return (creationDate, modifiedDate, lastAccessDate); + return new FileTimestamp + { + CreationDateTime = creationDateTime, + ModifiedDateTime = modifiedDateTime, + LastAccessDateTime = lastAccessDateTime + }; } } } diff --git a/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs b/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs index 793f3dab07..82cdebd905 100644 --- a/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs +++ b/Ryujinx.HLE/FileSystem/IFileSystemProvider.cs @@ -38,6 +38,6 @@ namespace Ryujinx.HLE.FileSystem long GetTotalSpace(ServiceCtx context); - (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name); + FileTimestamp GetFileTimeStampRaw(string name); } } diff --git a/Ryujinx.HLE/FileSystem/PFsProvider.cs b/Ryujinx.HLE/FileSystem/PFsProvider.cs index f924410771..69e7a9b83d 100644 --- a/Ryujinx.HLE/FileSystem/PFsProvider.cs +++ b/Ryujinx.HLE/FileSystem/PFsProvider.cs @@ -144,7 +144,7 @@ namespace Ryujinx.HLE.FileSystem throw new NotSupportedException(); } - public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) + public FileTimestamp GetFileTimeStampRaw(string name) { throw new NotImplementedException(); } diff --git a/Ryujinx.HLE/FileSystem/RomFsProvider.cs b/Ryujinx.HLE/FileSystem/RomFsProvider.cs index 839a522279..f64d99c704 100644 --- a/Ryujinx.HLE/FileSystem/RomFsProvider.cs +++ b/Ryujinx.HLE/FileSystem/RomFsProvider.cs @@ -161,7 +161,7 @@ namespace Ryujinx.HLE.FileSystem throw new NotSupportedException(); } - public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) + public FileTimestamp GetFileTimeStampRaw(string name) { throw new NotImplementedException(); } diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/FileTimestamp.cs b/Ryujinx.HLE/HOS/Services/FspSrv/FileTimestamp.cs new file mode 100644 index 0000000000..879fb78cde --- /dev/null +++ b/Ryujinx.HLE/HOS/Services/FspSrv/FileTimestamp.cs @@ -0,0 +1,11 @@ +using System; + +namespace Ryujinx.HLE.HOS.Services.FspSrv +{ + struct FileTimestamp + { + public DateTime CreationDateTime; + public DateTime ModifiedDateTime; + public DateTime LastAccessDateTime; + } +} \ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs b/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs index 0eec1a79d9..bcb9dbaf81 100644 --- a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs +++ b/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystem.cs @@ -377,11 +377,11 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv if (_provider.FileExists(path) || _provider.DirectoryExists(path)) { - (DateTime creationTime, DateTime modifiedTime, DateTime accessTime) = _provider.GetFileTimeStampRaw(path); + FileTimestamp timestamp = _provider.GetFileTimeStampRaw(path); - context.ResponseData.Write(new DateTimeOffset(creationTime).ToUnixTimeSeconds()); - context.ResponseData.Write(new DateTimeOffset(modifiedTime).ToUnixTimeSeconds()); - context.ResponseData.Write(new DateTimeOffset(accessTime).ToUnixTimeSeconds()); + context.ResponseData.Write(new DateTimeOffset(timestamp.CreationDateTime).ToUnixTimeSeconds()); + context.ResponseData.Write(new DateTimeOffset(timestamp.ModifiedDateTime).ToUnixTimeSeconds()); + context.ResponseData.Write(new DateTimeOffset(timestamp.LastAccessDateTime).ToUnixTimeSeconds()); byte[] data = new byte[8];