【问题标题】:How can I access files in another program's Application Data in a Windows 8 app?如何在 Windows 8 应用程序中访问另一个程序的应用程序数据中的文件?
【发布时间】:2012-12-14 13:19:10
【问题描述】:

我正在编写一个需要访问另一个程序的应用程序数据中的文件的 Windows 8 应用程序。我已经阅读了Window's file permssion guidelines 并没有找到办法。这甚至可能吗?如果是这样,我将如何去做?

【问题讨论】:

    标签: c# visual-studio windows-8 microsoft-metro windows-store-apps


    【解决方案1】:

    这在 windows 商店应用程序中是不可能的,它们是沙盒的,需要声明诸如访问互联网、相机和类似的功能,而且你不能声明你想读取其他应用程序数据。

    【讨论】:

    • 是否可以使用文件夹选择器或类似的东西?
    • 无法通过文件/文件夹选择器。但我记得可以使用本机代码绕过 winrt,但是这样的应用程序在提交到 App Store 时不会通过 Windows 8 兼容性测试
    • @Garrett 可能的using a filepicker
    • @GameScripting 我该怎么做?我已经开始尝试使用它,但目前AppData 不显示,除非我删除隐藏属性。
    • @Garrett 由您决定;)我提供的链接可以帮助您找到答案。祝你好运:)
    【解决方案2】:

    无法使用 winrt API。这就像每个进程的独立存储。

    File access and permissions in Windows Store apps

    但是使用 Hack 可以绕过沙盒环境。

    How to bypass WinRT / Metro sandbox using simple trick.Sample + Guide

    但此类应用在提交到 App Store 时不会通过 windows 8 兼容性测试。

    【讨论】:

    • 那是我在帖子中链接到的文章。我相信这可以使用文件夹选择器或类似的东西来实现。这行得通吗?
    • 感谢您的建议,但我的意图是通过 Windows 应用商店分发它,所以这不是一个有利的选择。
    • 你可以使用文件夹选择器——但这意味着用户需要一直明确地选择文件;你不能只是去自动发现它。
    【解决方案3】:

    如果您不知道如何将 .net 用于 Windows 8 存储,则不可能。

    这样你就得到了保存位置:

    using Windows.Storage;
    StorageFolder localFolder = ApplicationData.Current.LocalFolder;
    

    您可以通过应用 URI 检索数据:

    using Windows.Storage;
    StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appdata:///local/file.txt");
    

    来源: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh967755.aspx?cs-save-lang=1&cs-lang=csharp#locations_all_apps_can_access

    【讨论】:

    • 这只会让我访问我的应用程序的应用程序数据,但我正在尝试访问另一个程序的应用程序数据
    • 很抱歉发送垃圾邮件 :(
    【解决方案4】:

    此答案取决于其他应用程序和您尝试访问的文件类型,但也许您可以实现对共享合同的支持并告诉 Windows 您愿意接受哪些类型的文件。然后,用户可以选择使用其他应用程序并与您的应用程序共享。我不确定这对您的需求有多可行,但是因为您没有提供有关您要获取哪些数据的详细信息。

    【讨论】:

      【解决方案5】:

      我找到了答案。我可以告诉用户在文件夹选择器中选择他们的用户文件夹。然后,一旦获得该权限,我就可以以编程方式导航到应用程序数据文件夹中的所需文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-29
        • 2020-12-26
        • 1970-01-01
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        相关资源
        最近更新 更多