Skip to content

Commit 0378c34

Browse files
authored
Show deletion date in recycle bin (#2892)
1 parent 4bce964 commit 0378c34

31 files changed

+434
-64
lines changed

Common/ShellFileItem.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class ShellFileItem
99
public string FileName;
1010
public string FilePath;
1111
public DateTime RecycleDate;
12+
public DateTime ModifiedDate;
1213
public string FileSize;
1314
public ulong FileSizeBytes;
1415
public string FileType;
@@ -19,13 +20,14 @@ public ShellFileItem()
1920

2021
public ShellFileItem(
2122
bool isFolder, string recyclePath, string fileName, string filePath,
22-
DateTime recycleDate, string fileSize, ulong fileSizeBytes, string fileType)
23+
DateTime recycleDate, DateTime modifiedDate, string fileSize, ulong fileSizeBytes, string fileType)
2324
{
2425
this.IsFolder = isFolder;
2526
this.RecyclePath = recyclePath;
2627
this.FileName = fileName;
2728
this.FilePath = filePath;
2829
this.RecycleDate = recycleDate;
30+
this.ModifiedDate = modifiedDate;
2931
this.FileSize = fileSize;
3032
this.FileSizeBytes = fileSizeBytes;
3133
this.FileType = fileType;

Files.Launcher/Program.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -609,17 +609,20 @@ private static ShellFileItem GetRecycleBinItem(ShellItem folderItem)
609609
bool isFolder = folderItem.IsFolder && Path.GetExtension(folderItem.Name) != ".zip";
610610
if (folderItem.Properties == null)
611611
{
612-
return new ShellFileItem(isFolder, recyclePath, fileName, filePath, DateTime.Now, null, 0, null);
612+
return new ShellFileItem(isFolder, recyclePath, fileName, filePath, DateTime.Now, DateTime.Now, null, 0, null);
613613
}
614614
folderItem.Properties.TryGetValue<System.Runtime.InteropServices.ComTypes.FILETIME?>(
615-
Ole32.PROPERTYKEY.System.DateCreated, out var fileTime);
615+
Ole32.PROPERTYKEY.System.Recycle.DateDeleted, out var fileTime);
616616
var recycleDate = fileTime?.ToDateTime().ToLocalTime() ?? DateTime.Now; // This is LocalTime
617+
folderItem.Properties.TryGetValue<System.Runtime.InteropServices.ComTypes.FILETIME?>(
618+
Ole32.PROPERTYKEY.System.DateModified, out fileTime);
619+
var modifiedDate = fileTime?.ToDateTime().ToLocalTime() ?? DateTime.Now; // This is LocalTime
617620
string fileSize = folderItem.Properties.TryGetValue<ulong?>(
618621
Ole32.PROPERTYKEY.System.Size, out var fileSizeBytes) ?
619622
folderItem.Properties.GetPropertyString(Ole32.PROPERTYKEY.System.Size) : null;
620623
folderItem.Properties.TryGetValue<string>(
621624
Ole32.PROPERTYKEY.System.ItemTypeText, out var fileType);
622-
return new ShellFileItem(isFolder, recyclePath, fileName, filePath, recycleDate, fileSize, fileSizeBytes ?? 0, fileType);
625+
return new ShellFileItem(isFolder, recyclePath, fileName, filePath, recycleDate, modifiedDate, fileSize, fileSizeBytes ?? 0, fileType);
623626
}
624627

625628
private static void HandleApplicationsLaunch(IEnumerable<string> applications, AppServiceRequestReceivedEventArgs args)

Files/Enums/SortOption.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public enum SortOption : byte
66
DateModified,
77
Size,
88
FileType,
9-
OriginalPath
9+
OriginalPath,
10+
DateDeleted
1011
}
1112
}

Files/Filesystem/ListedItem.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public ListedItem(string folderRelativeId, string dateReturnFormat = null)
198198
}
199199
}
200200

201-
private string DateReturnFormat { get; }
201+
protected string DateReturnFormat { get; }
202202

203203
public static string GetFriendlyDateFromFormat(DateTimeOffset d, string returnFormat)
204204
{
@@ -269,6 +269,20 @@ public RecycleBinItem(string folderRelativeId, string returnFormat) : base(folde
269269
{
270270
}
271271

272+
public string ItemDateDeleted { get; private set; }
273+
274+
public DateTimeOffset ItemDateDeletedReal
275+
{
276+
get => itemDateDeletedReal;
277+
set
278+
{
279+
ItemDateDeleted = GetFriendlyDateFromFormat(value, DateReturnFormat);
280+
itemDateDeletedReal = value;
281+
}
282+
}
283+
284+
private DateTimeOffset itemDateDeletedReal;
285+
272286
// For recycle bin elements (path + name)
273287
public string ItemOriginalPath { get; set; }
274288

Files/MultilingualResources/Files.cs-CZ.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2062,6 +2062,14 @@
20622062
<source>Details View</source>
20632063
<target state="new">Details View</target>
20642064
</trans-unit>
2065+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2066+
<source>Date deleted</source>
2067+
<target state="new">Date deleted</target>
2068+
</trans-unit>
2069+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2070+
<source>Date deleted</source>
2071+
<target state="new">Date deleted</target>
2072+
</trans-unit>
20652073
</group>
20662074
</body>
20672075
</file>

Files/MultilingualResources/Files.de-DE.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2046,6 +2046,14 @@
20462046
<source>Details View</source>
20472047
<target state="new">Details View</target>
20482048
</trans-unit>
2049+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2050+
<source>Date deleted</source>
2051+
<target state="new">Date deleted</target>
2052+
</trans-unit>
2053+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2054+
<source>Date deleted</source>
2055+
<target state="new">Date deleted</target>
2056+
</trans-unit>
20492057
</group>
20502058
</body>
20512059
</file>

Files/MultilingualResources/Files.es-ES.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,6 +2042,14 @@
20422042
<source>Details View</source>
20432043
<target state="translated">Detalles</target>
20442044
</trans-unit>
2045+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2046+
<source>Date deleted</source>
2047+
<target state="new">Date deleted</target>
2048+
</trans-unit>
2049+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2050+
<source>Date deleted</source>
2051+
<target state="new">Date deleted</target>
2052+
</trans-unit>
20452053
</group>
20462054
</body>
20472055
</file>

Files/MultilingualResources/Files.fr-FR.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2045,6 +2045,14 @@
20452045
<source>Details View</source>
20462046
<target state="new">Details View</target>
20472047
</trans-unit>
2048+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2049+
<source>Date deleted</source>
2050+
<target state="new">Date deleted</target>
2051+
</trans-unit>
2052+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2053+
<source>Date deleted</source>
2054+
<target state="new">Date deleted</target>
2055+
</trans-unit>
20482056
</group>
20492057
</body>
20502058
</file>

Files/MultilingualResources/Files.he-IL.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2044,6 +2044,14 @@
20442044
<source>Details View</source>
20452045
<target state="new">Details View</target>
20462046
</trans-unit>
2047+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2048+
<source>Date deleted</source>
2049+
<target state="new">Date deleted</target>
2050+
</trans-unit>
2051+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2052+
<source>Date deleted</source>
2053+
<target state="new">Date deleted</target>
2054+
</trans-unit>
20472055
</group>
20482056
</body>
20492057
</file>

Files/MultilingualResources/Files.hi-IN.xlf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2055,6 +2055,14 @@
20552055
<source>Details View</source>
20562056
<target state="new">Details View</target>
20572057
</trans-unit>
2058+
<trans-unit id="BaseLayoutContextFlyoutSortByDateDeleted.Text" translate="yes" xml:space="preserve">
2059+
<source>Date deleted</source>
2060+
<target state="new">Date deleted</target>
2061+
</trans-unit>
2062+
<trans-unit id="dateDeletedColumn.Header" translate="yes" xml:space="preserve">
2063+
<source>Date deleted</source>
2064+
<target state="new">Date deleted</target>
2065+
</trans-unit>
20582066
</group>
20592067
</body>
20602068
</file>

0 commit comments

Comments
 (0)