Use a struct for file timestamp

This commit is contained in:
Thog 2019-02-12 13:11:02 +01:00
parent d0110b0da7
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);
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
};
}
}
}

View file

@ -38,6 +38,6 @@ namespace Ryujinx.HLE.FileSystem
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();
}
public (DateTime, DateTime, DateTime) GetFileTimeStampRaw(string name)
public FileTimestamp GetFileTimeStampRaw(string name)
{
throw new NotImplementedException();
}

View file

@ -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();
}

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))
{
(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];