Fixed: Try to set last write time on files moved to recycle bin

Closes #2057
This commit is contained in:
Mark McDowall 2017-07-18 23:44:30 -07:00
parent 6d0a3b1ca4
commit fbcc0b76bf
No known key found for this signature in database
GPG Key ID: D4CEFA9A718052E0
1 changed files with 15 additions and 11 deletions

View File

@ -62,11 +62,7 @@ namespace NzbDrone.Core.MediaFiles
_diskProvider.FolderSetLastWriteTime(destination, DateTime.UtcNow);
foreach (var file in _diskProvider.GetFiles(destination, SearchOption.AllDirectories))
{
if (OsInfo.IsWindows)
{
//TODO: Better fix than this for non-Windows?
_diskProvider.FileSetLastWriteTime(file, DateTime.UtcNow);
}
SetLastWriteTime(file, DateTime.UtcNow);
}
_logger.Debug("Folder has been moved to the recycling bin: {0}", destination);
@ -123,12 +119,8 @@ namespace NzbDrone.Core.MediaFiles
_logger.Error(e, "Unable to move '{0}' to the recycling bin: '{1}'", path, destination);
throw;
}
//TODO: Better fix than this for non-Windows?
if (OsInfo.IsWindows)
{
_diskProvider.FileSetLastWriteTime(destination, DateTime.UtcNow);
}
SetLastWriteTime(destination, DateTime.UtcNow);
_logger.Debug("File has been moved to the recycling bin: {0}", destination);
}
@ -192,6 +184,18 @@ namespace NzbDrone.Core.MediaFiles
_logger.Debug("Recycling Bin has been cleaned up.");
}
private void SetLastWriteTime(string file, DateTime dateTime)
{
// Swallow any IOException that may be thrown due to "Invalid parameter"
try
{
_diskProvider.FileSetLastWriteTime(file, dateTime);
}
catch (IOException)
{
}
}
public void Execute(CleanUpRecycleBinCommand message)
{
Cleanup();