Skip to content

Commit b49d38d

Browse files
committed
Implement Delete Function and Fix Removable Drive Bugs
1 parent c82301a commit b49d38d

File tree

3 files changed

+76
-10
lines changed

3 files changed

+76
-10
lines changed

GenericFileBrowser.xaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@
129129
<MenuFlyoutItem.Icon>
130130
<FontIcon Glyph="&#xE74D;"/>
131131
</MenuFlyoutItem.Icon>
132+
<MenuFlyoutItem.KeyboardAccelerators>
133+
<KeyboardAccelerator Key="Delete"/>
134+
</MenuFlyoutItem.KeyboardAccelerators>
132135
</MenuFlyoutItem>
133136
<MenuFlyoutItem Text="Rename" Name="RenameItem" >
134137
<MenuFlyoutItem.Icon>

ItemInteractions.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,9 +496,37 @@ private static void Manager_DataRequested(DataTransferManager sender, DataReques
496496

497497
}
498498

499-
public static void DeleteItem_Click(object sender, RoutedEventArgs e)
499+
public static async void DeleteItem_Click(object sender, RoutedEventArgs e)
500500
{
501-
501+
//MessageDialog DeleteConfirmationDialog = new MessageDialog("Are you sure you want to send " + GenericFileBrowser.data.SelectedItems.Count + " item(s) to the Recycle Bin?", "Move to Recycle Bin?");
502+
//DeleteConfirmationDialog.Commands.Add(new UICommand("Yes", new UICommandInvokedHandler(Interaction.DeleteConfirmed)));
503+
//DeleteConfirmationDialog.Commands.Add(new UICommand("Cancel"));
504+
//await DeleteConfirmationDialog.ShowAsync();
505+
try
506+
{
507+
foreach (ListedItem storItem in GenericFileBrowser.data.SelectedItems)
508+
{
509+
if (storItem.FileExtension != "Folder")
510+
{
511+
var item = await StorageFile.GetFileFromPathAsync(storItem.FilePath);
512+
await item.DeleteAsync(StorageDeleteOption.Default);
513+
514+
}
515+
else
516+
{
517+
var item = await StorageFolder.GetFolderFromPathAsync(storItem.FilePath);
518+
await item.DeleteAsync(StorageDeleteOption.Default);
519+
520+
}
521+
522+
}
523+
NavigationActions.Refresh_Click(null, null);
524+
525+
}
526+
catch (InvalidOperationException)
527+
{
528+
529+
}
502530
}
503531

504532
public static void RenameItem_Click(object sender, RoutedEventArgs e)

MainPage.xaml.cs

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,51 @@ public MainPage()
5151

5252
public async void PopulateNavViewWithExternalDrives()
5353
{
54-
StorageFolder RemDevicesFolder = KnownFolders.RemovableDevices;
55-
foreach (StorageFolder fol in await RemDevicesFolder.GetFoldersAsync())
54+
55+
StorageFolder fol;
56+
string driveLetter;
57+
string NavItemContent;
58+
SymbolIcon icon;
59+
ObservableCollection<string> knownRemDevices = new ObservableCollection<string>();
60+
foreach (StorageFolder f in await KnownFolders.RemovableDevices.GetFoldersAsync())
5661
{
57-
nv.MenuItems.Add(new Microsoft.UI.Xaml.Controls.NavigationViewItem()
62+
var path = f.Path;
63+
knownRemDevices.Add(path);
64+
}
65+
66+
for (char let = 'A'; let <= 'Z'; let++)
67+
{
68+
if (let != 'C')
5869
{
59-
Content = "Removable Drive (" + fol.Name + ")",
60-
Icon = new SymbolIcon((Symbol)0xE88E),
61-
Tag = fol.Name
62-
});
63-
70+
try
71+
{
72+
driveLetter = let + ":\\";
73+
fol = await StorageFolder.GetFolderFromPathAsync(driveLetter);
74+
75+
if (knownRemDevices.Contains(driveLetter))
76+
{
77+
NavItemContent = "Removable Drive (" + driveLetter + ")";
78+
icon = new SymbolIcon((Symbol)0xE88E);
79+
}
80+
else
81+
{
82+
NavItemContent = "Local Disk (" + driveLetter + ")";
83+
icon = new SymbolIcon((Symbol)0xEDA2);
84+
}
85+
86+
nv.MenuItems.Add(new Microsoft.UI.Xaml.Controls.NavigationViewItem()
87+
{
88+
Content = NavItemContent,
89+
Icon = icon,
90+
Tag = driveLetter
91+
});
92+
}
93+
catch (Exception)
94+
{
95+
// Debug.WriteLine("{0} not found", let);
96+
}
97+
98+
}
6499
}
65100
}
66101

0 commit comments

Comments
 (0)