gpt4 book ai didi

c# - 从 FileActivated 文件访问文件夹中的所有文件

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:29 24 4
gpt4 key购买 nike

我用 C# 编写了一个 Windows 10 通用应用程序,例如默认的照片应用程序。照片应用程序允许显示用户使用照片应用程序打开文件的目录中的所有图像。但是当用户使用我的应用程序打开文件时,我只得到 FileActivatedEventArgs 允许显示用户打开的文件。我也找不到向用户显示该文件目录中的其他文件的解决方案。我认为问题是获得访问这些文件的权限,因为当文件的文件夹在图片库中时它可以工作。但是 Windows 照片应用程序可以随处使用,所以我认为必须有一个解决方案......

编辑:我试图从我的项目中提取一个非常简单的示例代码,仅用几行代码就显示了相关部分

public static async Task<BitmapImage> LoadImage(StorageFile file)
{
BitmapImage bitmapImage = new BitmapImage();
FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.Read);
bitmapImage.SetSource(stream);
return bitmapImage;
}

private async void setImages(FileActivatedEventArgs args)
{
StorageFile si = (StorageFile)App.args.Files.First();
StorageFolder st = await si.GetParentAsync();
StorageApplicationPermissions.FutureAccessList.Add(st);
IReadOnlyList<StorageFile> sflist = await st.GetFilesAsync();
foreach (StorageFile sf in sflist)
{
imageList.Add(await LoadImage(sf));
}
}

最佳答案

是的,您没有该文件夹的访问权限。在这种情况下,GetParentAsync() 可能会失败。您应该使用“IFileActivatedEventArgsWithNeighboringFiles”来解析相邻文件。 OS 的 File Broker 进程通过使用此接口(interface)将相邻文件传递给您。

https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.activation.ifileactivatedeventargswithneighboringfiles

注意 - 此 API 是从 Win8.1 添加的。并且,Win8.0 版本的Photo 应用程序在被FileActivated 激活时无法显示相邻文件。 Win8.1 版本的照片应用程序可能会使用此 API。

关于c# - 从 FileActivated 文件访问文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com