Use a struct for file timestamp

This commit is contained in:
Thog 2019-02-12 13:11:02 +01:00
commit 26b95bdb64
No known key found for this signature in database
GPG key ID: 0CD291558FAFDBC6
6 changed files with 34 additions and 18 deletions

View file

@ -282,28 +282,33 @@ namespace Ryujinx.HLE.FileSystem
} }
public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) public FileTimestamp GetFileTimeStampRaw(string name)
{ {
CheckIfDescendentOfRootPath(name); CheckIfDescendentOfRootPath(name);
DateTime creationDate = DateTime.UnixEpoch; DateTime creationDateTime = DateTime.UnixEpoch;
DateTime modifiedDate = DateTime.UnixEpoch; DateTime modifiedDateTime = DateTime.UnixEpoch;
DateTime lastAccessDate = DateTime.UnixEpoch; DateTime lastAccessDateTime = DateTime.UnixEpoch;
if (File.Exists(name)) if (File.Exists(name))
{ {
creationDate = File.GetCreationTime(name); creationDateTime = File.GetCreationTime(name);
modifiedDate = File.GetLastWriteTime(name); modifiedDateTime = File.GetLastWriteTime(name);
lastAccessDate = File.GetLastAccessTime(name); lastAccessDateTime = File.GetLastAccessTime(name);
} }
else if (Directory.Exists(name)) else if (Directory.Exists(name))
{ {
creationDate = Directory.GetCreationTime(name); creationDateTime = Directory.GetCreationTime(name);
modifiedDate = Directory.GetLastWriteTime(name); modifiedDateTime = Directory.GetLastWriteTime(name);
lastAccessDate = Directory.GetLastAccessTime(name); lastAccessDateTime = Directory.GetLastAccessTime(name);
} }
return (creationDate, modifiedDate, lastAccessDate); return new FileTimestamp
{
CreationDateTime = creationDateTime,
ModifiedDateTime = modifiedDateTime,
LastAccessDateTime = lastAccessDateTime
};
} }
} }
} }

View file

@ -38,6 +38,6 @@ namespace Ryujinx.HLE.FileSystem
long GetTotalSpace(ServiceCtx context); long GetTotalSpace(ServiceCtx context);
(DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name); FileTimestamp GetFileTimeStampRaw(string name);
} }
} }

View file

@ -144,7 +144,7 @@ namespace Ryujinx.HLE.FileSystem
throw new NotSupportedException(); throw new NotSupportedException();
} }
public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) public FileTimestamp GetFileTimeStampRaw(string name)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View file

@ -161,7 +161,7 @@ namespace Ryujinx.HLE.FileSystem
throw new NotSupportedException(); throw new NotSupportedException();
} }
public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name) public FileTimestamp GetFileTimeStampRaw(string name)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View file

@ -0,0 +1,11 @@
using System;
namespace Ryujinx.HLE.HOS.Services.FspSrv
{
struct FileTimestamp
{
public DateTime CreationDateTime;
public DateTime ModifiedDateTime;
public DateTime LastAccessDateTime;
}
}

View file

@ -377,11 +377,11 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv
if (_provider.FileExists(path) || _provider.DirectoryExists(path)) 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(timestamp.CreationDateTime).ToUnixTimeSeconds());
context.ResponseData.Write(new DateTimeOffset(modifiedTime).ToUnixTimeSeconds()); context.ResponseData.Write(new DateTimeOffset(timestamp.ModifiedDateTime).ToUnixTimeSeconds());
context.ResponseData.Write(new DateTimeOffset(accessTime).ToUnixTimeSeconds()); context.ResponseData.Write(new DateTimeOffset(timestamp.LastAccessDateTime).ToUnixTimeSeconds());
byte[] data = new byte[8]; byte[] data = new byte[8];