【问题标题】:How to directly open file from a button click?如何通过单击按钮直接打开文件?
【发布时间】:2019-10-13 12:54:44
【问题描述】:

我正在开发一个 UWP 应用,在 C# 中的 VisualStudio 上。

我想知道如何在 UWP 上简单地打开文件。这些文件可以是 Excel 文件或 word 文件。这些文件在公共服务器上

我的解决方案是:

private void G_Tapped(object sender, TappedRoutedEventArgs e) { StreamReader reader = new StreamReader("C:/Users/Me/Desktop")};

但它不允许我将路径链接到服务器(如 T:/...) (另外我不能通过点击直接打开文件,我必须右键点击>打开方式> Excel。否则什么都不会发生)

所以我的问题是,我可以直接链接文件直接打开它吗?如果有,怎么做?

谢谢!!

【问题讨论】:

    标签: c# visual-studio uwp


    【解决方案1】:

    如果要打开文件类型的默认程序(例如:Word 的.docx),可以尝试使用Launcher 类和LaunchFileAsync 方法。在 WinRT 上获取文件有点不同,您可以尝试注册您的应用程序以访问一些已知文件夹(例如:下载、文档、视频等)或创建一个 FileOpenPicker 对话框以从文件系统获取任何文件让用户选择要打开的文件。

    【讨论】:

    • 我会试试午餐课。我确实可以使用 FileOpenPicker 对话框,但我不希望用户去搜索文件。我想将按钮链接到我的文件路径,并在单击按钮时打开它...
    • @CeeTee 您可以尝试使用 this 从绝对路径获取 StorageFolder 对象,并为每个文件创建一个按钮。
    【解决方案2】:

    由于 UWP 文件访问权限限制,您无法直接从磁盘访问文件。有关文件访问权限的更多详细信息,您可以参考此document。如果要访问特定文件,可以使用 broadfilesystemaccess 和 openfilepicker。

    关于broadfilesystemaccess,您需要在设置中添加broadFileSystemAccess能力并允许您的应用访问文件系统。在这种情况下,您可以使用带有路径的 Storagefile API 直接从磁盘访问文件。

    关于FileOpenPicker,它会打开一个类似于文件资源管理器的对话框,然后你可以从你想要的位置选择文件并在你的应用程序中使用它。

    更新:

    如果你想通过点击按钮直接打开特定文件,你可以尝试使用LaunchFileAsync。有关 LaunchFileAsync 的更多详细信息,您可以参考此document。另外,如果你把你的excel或者word文件直接放到你的项目中,你需要注意“xlsx或者docx文件默认不包含在appx包中(.txt, .jpg, and .png都是)”。因此,请在解决方案资源管理器中选择您的 excel 或 word 文件,查看下方属性中的 Build Action,确保将其设置为 "Content"。在这种情况下,您可以启动文件。您可以参考这个case来设置。

    【讨论】:

    • 好的,谢谢,我会试试看,如果我找到了解决方案会告诉你
    • 我确实使用过 FileOpenPicker。它有点工作;虽然我想将按钮链接到我的文件路径,并在单击按钮时打开它。它似乎并不复杂,但我做不到:(
    • 你的意思是直接使用文件路径查找文件吗?而broadFileSystemAccess不能帮你实现这个效果吗?
    • 我想通过单击我的应用程序上的按钮打开一个 excel 或一个 word 文件,或者,如果这太复杂,打开文件文件夹上的资源管理器窗口并打开它。
    • 如果想直接点击按钮打开具体文件,可以尝试使用LaunchFileAsync。但是您需要先添加broadFileSystemAccess 功能才能访问特定路径。更多关于 LaunchFileAsync 的细节,可以参考这个document
    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多