如何在Windows Universal App中显示网络文件夹或本地驱动器中的图像

史蒂夫在CO

我在Windows Universal应用程序的图像控件中显示jpg时遇到问题。(尝试创建Windows 8 Store应用程序时也遇到了同样的问题)

我有一个带有Image控件的简单表单。我要做的就是能够打开本地驱动器或本地网络上的网络驱动器中的文件夹中的图像并显示它们。但是我没有运气。我唯一得到的是E_NETWORK_ERROR,没有其他信息。

我认为它可能与安全性有关,但是肯定有一个设置或权限才能允许我这样做。我尝试在清单的“功能”选项卡中启用“专用网络”,但这无济于事。我没有在《宣言》中看到任何听起来像我需要的东西。

我知道UWP应用有些沙盒化,但是如果您甚至无法访问本地文件,它们有什么用?

这是我尝试过的代码示例。我也做了其他迭代,但是它们都有相同的最终结果。

Xml:

<Image Name="Image1"/>

后面的代码:

    public LoadImage()
    {
        var bitmap = new BitmapImage();
        bitmap.ImageFailed += Bitmap_ImageFailed;
        bitmap.UriSource = new Uri(@"D:\Users\Steve\Documents\SomeImage.JPG", UriKind.Absolute);
        Image1.Source = bitmap;
    }

    private void Bitmap_ImageFailed(object sender, ExceptionRoutedEventArgs e)
    {
        Debug.Write(e.ErrorMessage);
    }

当我运行它时,我最终遇到Bitmap_ImageFailed事件,并且ErrorMessage属性只是“ E_NETWORK_ERROR”,并且图像中没有任何显示。不是很有帮助。

我想念什么?我必须忽略一些简单明了的东西。

更新:

感谢这里的所有建议,我得以将它付诸实践。我无法穿过头骨的部分是,您不能仅仅给它一个文件夹并期望它读取文件,即使是“快速而肮脏的测试”。您必须通过“适当的渠道”才能到达那里。我将它们拼凑在一起,并想到了这个示例,该示例显示了所选文件夹中的第一张图像:

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
        FolderPicker folderPicker = new FolderPicker();
        folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
        folderPicker.FileTypeFilter.Add(".jpg");
        folderPicker.FileTypeFilter.Add(".tif");
        folderPicker.FileTypeFilter.Add(".png");

        StorageFolder folder = await folderPicker.PickSingleFolderAsync();
        if (folder != null)
        {
            StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder);
            var files = await folder.GetFilesAsync();

            var bitmap = new BitmapImage();
            bitmap.ImageFailed += Bitmap_ImageFailed;
            var stream = await files.First().OpenReadAsync();
            await bitmap.SetSourceAsync(stream);
            Image1.Source = bitmap;
        }
    }

另外,我必须将.jpg,.tif和.png的文件类型以及“文件打开选择器”添加到声明中。

马克西姆·尼康诺夫(Maxim Nikonov)

您可以在MSDN文章文件访问权限中找出所有必要的信息。

除了默认位置之外,应用程序还可以通过在应用程序清单中声明功能(请参阅应用程序功能声明),或通过调用文件选择器让用户选择文件和文件夹供应用程序访问(请参见应用程序访问)来访问其他文件和文件夹。使用选择器打开文件和文件夹)。

因此,如果要从用户文档文件夹中读取文件,则需要更新应用程序AppXManifest以请求文档库访问功能

您还需要通过声明要访问的文件类型来更新AppXManifest。这样,即使可以访问文件夹,您也只能访问一组有限的文件类型。您必须在“声明”选项卡上指定支持的文件类型

在此处输入图片说明

我设置了一个新的文件类型(.txt),然后从那里开始起作用。和代码示例

async void Button_Click_2(object sender, RoutedEventArgs e)
{
    var _Name = "HelloWorld.txt";
    var _Folder = KnownFolders.DocumentsLibrary;
    var _Option = Windows.Storage.CreationCollisionOption.ReplaceExisting;

    // create file 
    var _File = await _Folder.CreateFileAsync(_Name, _Option);

    // write content
    var _WriteThis = "Hello world!";
    await Windows.Storage.FileIO.WriteTextAsync(_File, _WriteThis);

    // acquire file
    try { _File = await _Folder.GetFileAsync(_Name); }
    catch (FileNotFoundException) { /* TODO */ }

    // read content
    var _Content = await FileIO.ReadTextAsync(_File);
    await new Windows.UI.Popups.MessageDialog(_Content).ShowAsync();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows Universal App:在USB驱动器上打开文件

来自分类Dev

如何在Windows Universal App 10中实现推送通知?

来自分类Dev

如何在Windows Universal App 10中实现推送通知?

来自分类Dev

如何在Windows Universal Apps中聚焦相机?

来自分类Dev

如何在Windows Universal应用中实现Facebook Api?

来自分类Dev

如何在Universal Windows Project中实现动画表情?

来自分类Dev

网络驱动器与“最喜欢”访问Windows桌面中的共享文件夹

来自分类Dev

如何在Windows PC中为NAS存储分配文件夹或驱动器?

来自分类Dev

在Windows Phone 8.1 Universal App中本地保存图像

来自分类Dev

Windows 10不显示E驱动器中的文件和文件夹

来自分类Dev

如何在Windows Universal App中读取文本文件

来自分类Dev

Windows Universal App中的DeltaManipulation

来自分类Dev

如何在Windows 10 Phone的Windows Universal Apps中通过触摸设置拖动?

来自分类Dev

如何在Windows Universal Apps中显示带有文本的进度环?

来自分类Dev

如何在特定的团队驱动器或文件夹中创建文件?

来自分类Dev

如何使用本地磁盘或网络驱动器中的图像显示自定义KML地标图标

来自分类Dev

如何在Windows Universal App中获取应用程序版本?

来自分类Dev

如何在 C# Universal WIndows App 中通过超时 StreamSocket 取消?

来自分类Dev

如何显示存储在本地驱动器或网络驱动器上的图像?

来自分类Dev

Windows Universal Apps中的动画

来自分类Dev

如何在Google驱动器中创建没有重复的文件夹?

来自分类Dev

挂载到主文件夹时如何在导航树中隐藏驱动器

来自分类Dev

如何在C驱动器目录中创建文件夹

来自分类Dev

如何停止Windows在我的外部驱动器中创建未知的字母数字文件夹?

来自分类Dev

我如何在Windows 10 Universal App中使用xsd.exe生成的文件

来自分类Dev

防止在不禁用Windows Update的情况下显示驱动器根目录中的“神秘”文件夹

来自分类Dev

如何在Universal Windows Platform Apps中更改“单击事件”上按钮的背景颜色?

来自分类Dev

如何在Windows Universal Apps运行时访问和更改“资源字典”中“资源”的值?

来自分类Dev

如何在Windows Universal应用程序中的页面之间导航?

Related 相关文章

  1. 1

    Windows Universal App:在USB驱动器上打开文件

  2. 2

    如何在Windows Universal App 10中实现推送通知?

  3. 3

    如何在Windows Universal App 10中实现推送通知?

  4. 4

    如何在Windows Universal Apps中聚焦相机?

  5. 5

    如何在Windows Universal应用中实现Facebook Api?

  6. 6

    如何在Universal Windows Project中实现动画表情?

  7. 7

    网络驱动器与“最喜欢”访问Windows桌面中的共享文件夹

  8. 8

    如何在Windows PC中为NAS存储分配文件夹或驱动器?

  9. 9

    在Windows Phone 8.1 Universal App中本地保存图像

  10. 10

    Windows 10不显示E驱动器中的文件和文件夹

  11. 11

    如何在Windows Universal App中读取文本文件

  12. 12

    Windows Universal App中的DeltaManipulation

  13. 13

    如何在Windows 10 Phone的Windows Universal Apps中通过触摸设置拖动?

  14. 14

    如何在Windows Universal Apps中显示带有文本的进度环?

  15. 15

    如何在特定的团队驱动器或文件夹中创建文件?

  16. 16

    如何使用本地磁盘或网络驱动器中的图像显示自定义KML地标图标

  17. 17

    如何在Windows Universal App中获取应用程序版本?

  18. 18

    如何在 C# Universal WIndows App 中通过超时 StreamSocket 取消?

  19. 19

    如何显示存储在本地驱动器或网络驱动器上的图像?

  20. 20

    Windows Universal Apps中的动画

  21. 21

    如何在Google驱动器中创建没有重复的文件夹?

  22. 22

    挂载到主文件夹时如何在导航树中隐藏驱动器

  23. 23

    如何在C驱动器目录中创建文件夹

  24. 24

    如何停止Windows在我的外部驱动器中创建未知的字母数字文件夹?

  25. 25

    我如何在Windows 10 Universal App中使用xsd.exe生成的文件

  26. 26

    防止在不禁用Windows Update的情况下显示驱动器根目录中的“神秘”文件夹

  27. 27

    如何在Universal Windows Platform Apps中更改“单击事件”上按钮的背景颜色?

  28. 28

    如何在Windows Universal Apps运行时访问和更改“资源字典”中“资源”的值?

  29. 29

    如何在Windows Universal应用程序中的页面之间导航?

热门标签

归档