Fix for issue on raspbian for setting date of file changes in UnixStat Experimental Feature (#11313)

This commit is contained in:
James Truher [MSFT]
2019-12-12 12:25:16 -08:00
committed by Dongbo Wang
parent 55b572be7b
commit bcc5acb0bd
@@ -864,9 +864,36 @@ namespace System.Management.Automation
cs.GroupId = css.GroupId;
cs.HardlinkCount = css.HardlinkCount;
cs.Size = css.Size;
cs.AccessTime = DateTime.UnixEpoch.AddSeconds(css.AccessTime).ToLocalTime();
cs.ModifiedTime = DateTime.UnixEpoch.AddSeconds(css.ModifiedTime).ToLocalTime();
cs.StatusChangeTime = DateTime.UnixEpoch.AddSeconds(css.StatusChangeTime).ToLocalTime();
// These can sometime throw if we get too large a number back (seen on Raspbian).
// As a fallback, set the time to UnixEpoch.
try
{
cs.AccessTime = DateTime.UnixEpoch.AddSeconds(css.AccessTime).ToLocalTime();
}
catch
{
cs.AccessTime = DateTime.UnixEpoch.ToLocalTime();
}
try
{
cs.ModifiedTime = DateTime.UnixEpoch.AddSeconds(css.ModifiedTime).ToLocalTime();
}
catch
{
cs.ModifiedTime = DateTime.UnixEpoch.ToLocalTime();
}
try
{
cs.StatusChangeTime = DateTime.UnixEpoch.AddSeconds(css.StatusChangeTime).ToLocalTime();
}
catch
{
cs.StatusChangeTime = DateTime.UnixEpoch.ToLocalTime();
}
cs.BlockSize = css.BlockSize;
cs.DeviceId = css.DeviceId;
cs.NumberOfBlocks = css.NumberOfBlocks;