Код: Выделить всё
CommonDesktopDirectoryХотя чтение рабочего стола текущего пользователя работает отлично, мое приложение аварийно завершает работу при попытке доступа к общедоступному рабочему столу.
Я пытался добавить в свой Package.appxmanifest и вручную включил переключатель конфиденциальности файловой системы для моего приложения в Windows Настройки.
Код: Выделить всё
private async Task LoadRealIconsAsync()
{
string publicDesktop = Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory);
try
{
StorageFolder currentFolder = await StorageFolder.GetFolderFromPathAsync(publicDesktop);
var folders = await currentFolder.GetFoldersAsync();
foreach (StorageFolder folder in folders)
{
StorageItemThumbnail thumbnail = await folder.GetThumbnailAsync(ThumbnailMode.ListView, 64, ThumbnailOptions.UseCurrentScale);
BitmapImage bitmapIcon = new BitmapImage();
if (thumbnail != null) { await bitmapIcon.SetSourceAsync(thumbnail); }
DesktopFiles.Add(new DesktopItem { Name = folder.Name, FileIcon = bitmapIcon });
}
var files = await currentFolder.GetFilesAsync();
foreach (StorageFile file in files)
{
if (file.Name.ToLower() == "desktop.ini") continue;
StorageItemThumbnail thumbnail = await file.GetThumbnailAsync(ThumbnailMode.ListView, 64, ThumbnailOptions.UseCurrentScale);
BitmapImage bitmapIcon = new BitmapImage();
if (thumbnail != null) { await bitmapIcon.SetSourceAsync(thumbnail); }
string displayName = file.Name;
if (displayName.EndsWith(".lnk", StringComparison.OrdinalIgnoreCase) ||
displayName.EndsWith(".url", StringComparison.OrdinalIgnoreCase))
{
displayName = System.IO.Path.GetFileNameWithoutExtension(displayName);
}
DesktopFiles.Add(new DesktopItem { Name = displayName, FileIcon = bitmapIcon });
}
}
catch (Exception ex)
{
DesktopFiles.Add(new DesktopItem
{
Name = $"{System.IO.Path.GetFileName(publicDesktop)}: {ex.Message}",
FileIcon = null
});
}
}
Невозможно получить доступ к указанному файлу или папке (UNABLE_TO_MASK_PATH).
Проверьте, что элемент не отмечен системными или скрытыми атрибутами
файла.
есть ли обходные пути?>
Мобильная версия