Use a struct for file timestamp
This commit is contained in:
parent
d0110b0da7
commit
26b95bdb64
6 changed files with 34 additions and 18 deletions
|
@ -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
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
11
Ryujinx.HLE/HOS/Services/FspSrv/FileTimestamp.cs
Normal file
11
Ryujinx.HLE/HOS/Services/FspSrv/FileTimestamp.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ryujinx.HLE.HOS.Services.FspSrv
|
||||||
|
{
|
||||||
|
struct FileTimestamp
|
||||||
|
{
|
||||||
|
public DateTime CreationDateTime;
|
||||||
|
public DateTime ModifiedDateTime;
|
||||||
|
public DateTime LastAccessDateTime;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue