Skip to content

Commit 14d4eb4

Browse files
committed
Show original path in properties (files-community#1680)
1 parent 9a20ef7 commit 14d4eb4

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

Files/Filesystem/ListedItem.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.Toolkit.Mvvm.ComponentModel;
44
using Microsoft.Toolkit.Uwp.Extensions;
55
using System;
6+
using System.IO;
67
using Windows.Storage;
78
using Windows.UI.Xaml.Media.Imaging;
89

@@ -265,7 +266,7 @@ public RecycleBinItem(string folderRelativeId, string returnFormat) : base(folde
265266
// For recycle bin elements (path + name)
266267
public string ItemOriginalPath { get; set; }
267268
// For recycle bin elements (path)
268-
public string ItemOriginalFolder => System.IO.Path.GetDirectoryName(ItemOriginalPath);
269+
public string ItemOriginalFolder => Path.IsPathRooted(ItemOriginalPath) ? Path.GetDirectoryName(ItemOriginalPath) : ItemOriginalPath;
269270
}
270271

271272
public class ShortcutItem : ListedItem

Files/View Models/Properties/CombinedProperties.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ public override void GetBaseProperties()
4343
{
4444
ViewModel.ItemType = "PropertiesDriveItemTypeDifferent".GetLocalized();
4545
}
46-
ViewModel.ItemPath = string.Format(
47-
"PropertiesCombinedItemPath".GetLocalized(), Path.GetDirectoryName(List.First().ItemPath));
46+
var itemsPath = List.Select(Item => (Item as RecycleBinItem)?.ItemOriginalFolder ??
47+
(Path.IsPathRooted(Item.ItemPath) ? Path.GetDirectoryName(Item.ItemPath) : Item.ItemPath));
48+
if (itemsPath.Distinct().Count() == 1)
49+
{
50+
ViewModel.ItemPath = string.Format("PropertiesCombinedItemPath".GetLocalized(), itemsPath.First());
51+
}
4852
}
4953
}
5054

Files/View Models/Properties/FileProperties.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ public override void GetBaseProperties()
4848
ViewModel.ItemName = Item.ItemName;
4949
ViewModel.OriginalItemName = Item.ItemName;
5050
ViewModel.ItemType = Item.ItemType;
51-
ViewModel.ItemPath = Path.IsPathRooted(Item.ItemPath) ? Path.GetDirectoryName(Item.ItemPath) : Item.ItemPath;
51+
ViewModel.ItemPath = (Item as RecycleBinItem)?.ItemOriginalFolder ??
52+
(Path.IsPathRooted(Item.ItemPath) ? Path.GetDirectoryName(Item.ItemPath) : Item.ItemPath);
5253
ViewModel.ItemModifiedTimestamp = Item.ItemDateModified;
5354
//ViewModel.FileIconSource = Item.FileImage;
5455
ViewModel.LoadFolderGlyph = Item.LoadFolderGlyph;

Files/View Models/Properties/FolderProperties.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ public override void GetBaseProperties()
4040
ViewModel.ItemName = Item.ItemName;
4141
ViewModel.OriginalItemName = Item.ItemName;
4242
ViewModel.ItemType = Item.ItemType;
43-
ViewModel.ItemPath = Path.IsPathRooted(Item.ItemPath) ? Path.GetDirectoryName(Item.ItemPath) : Item.ItemPath;
43+
ViewModel.ItemPath = (Item as RecycleBinItem)?.ItemOriginalFolder ??
44+
(Path.IsPathRooted(Item.ItemPath) ? Path.GetDirectoryName(Item.ItemPath) : Item.ItemPath);
4445
ViewModel.ItemModifiedTimestamp = Item.ItemDateModified;
4546
//ViewModel.FileIconSource = Item.FileImage;
4647
ViewModel.LoadFolderGlyph = Item.LoadFolderGlyph;

0 commit comments

Comments
 (0)