问题标签 [fileopenpicker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

c# - 通过按顺序选择单个文件打开多个文件 - 从多个文件生成文件名

我有一个 UWP 应用程序,它可以选择打开图像序列。通常图像序列命名如下:

MyImageSequence_00001.png, MyImageSequence_00002.png, ... MyImageSequence_01024.png, MyImageSequence_01025.png,

通常,这些图像序列将被命名为“UniqueFileName_v06”之类的名称,后面带有“_0004”之类的帧号。在很多情况下,您可以在同一个文件夹中有多个图像序列,但它们将具有不同的前导名称,例如“UniqueFileName_v04_Reflections”或“UniqueFileName_v04_Depth”。起始帧号可以是任何数字,并且帧号将按顺序增加到序列的最后一帧。

我目前让用户手动选择所有文件,如下所示:

我希望做的是允许用户通过从文件选择器中的序列中选择单个图像来打开他们的图像序列。因此,如果他们选择“MyImageSequence_00003.png”,应用程序将找到并选择序列中的其余文件(MyImageSequence 00001-01025)并将它们添加到filePickerSelectedFilesArray变量files中。

其次,我想从文件列表中生成一个复合字符串名称。因此,生成一个类似“MyImageSequence_00001-01025”的名称来标识图像序列。

对解决此问题的最佳方法有任何想法吗?似乎我应该使用StorageItemsQuery类之类的东西,但不确定这是否是最好的方法,也不知道如何去做。

感谢您的任何帮助,您可以提供!

我正在使用以下内容来获取不带帧号的图像序列名称:

输入文件路径 C:\Users\Me\Desktop\MyImageSequenceFolder\MyImageSequence_00001.png

sequenceName 输出为“MyImageSequence”

0 投票
1 回答
117 浏览

.net - 如何在 WPF 应用程序中从智能手机导入多个文件?

Microsoft.Win32.OpenFileDialog我们在 WPF 应用程序(针对 .NET Framework 4.7.2)中使用时遇到问题。

我们希望能够从通过 USB 连接到计算机的智能手机导入多个文件。但是,使用 似乎不可能这样做OpenFileDialog,因为它会触发消息框“无法从该位置打开多个项目。请尝试选择单个项目。” . 您可以使用这个简单的代码复制它,并从您的智能手机中选择至少 2 张图片:

这个问题是已知的(参见此处此处)并且与 MTP 协议有关。使用替代“USB Mas Storage”(UMS)连接的智能手机不会出现此问题,但现代智能手机上不提供此选项。

UWPFileOpenPicker似乎可以更好地处理多个项目的选择(请参阅此处了解如何在 WPF 应用程序中使用它),但我们InvalidCastException在使用PickMultipleFilesAsync. 此处描述了该问题,并且答案表明该问题FileOpenPicker不能在 WPF .NET Framework 应用程序中使用。

正如评论中所说,实现此目的的另一种方法是使用智能手机设备的 MTP 协议从 skratch 实现文件选择器。这种方法的缺点是 .NET 和 UWP 文件选择器提供了许多很棒的功能并且完全集成到操作系统中。

我们已经没有解决这个问题的想法了,所以我的问题是:

有没有办法在面向 .NET Framework 的 WPF 应用程序中使用 Windows 文件选择器从智能手机导入多个文件?

Microsoft Q&A上也提出了同样的问题。

0 投票
0 回答
171 浏览

uwp - HoloLens 上的 FileOpenPicker 提供来自 OneDrive 的不完整文件

我正在使用 FileOpenPicker 从 OneDrive 中选择一个文件,随后我将通过“标准”C++ 接口(不是 C++/WinRT)访问该文件。我知道这些接口无法访问 FileOpenPicker 返回的路径,因此我使用 StorageFile::CopyAsync 将文件复制到 ApplicationData 下的可访问位置。

这适用于桌面上的 UWP x64 构建,但在 HoloLens 2 上的 UWP arm64 构建中失败。

在 HoloLens 上,FileOpenPicker 仅提供文件的一小部分。例如,对于 OneDrive 上 2.83 MB 的文件,FileOpenPicker 和 CopyAsync 生成的文件只有 144.6 KB。我已经对 FileOpenPicker 提供的源文件和 CopyAsync 的目标文件的文件大小和完整性进行了测试——例如:

LocallyIncomplete 位是明确的,即使大小仅为 2.83 MB 中的 144.6 KB。

CopyAsync 然后成功地复制了它所提供的 144.6 KB,但后来由于 FileOpenPicker 中的源文件不完整且无效而失败。

HoloLens 2 缺少什么?


这是一个最小的可重现示例——从https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/FilePicker/cppwinrt的 Microsoft GitHub FilePicker 示例中对 Scenario1_SingleFile.cpp 稍作修改

为 UWP-arm64 编译,部署到 HoloLens 2,并在 OneDrive 上使用数兆字节的文件进行测试。

0 投票
1 回答
118 浏览

c# - 如何在 UWP C# 中显示由文件打开选择器选择的图像?

我在通用 Windows 平台应用程序中实现了一个文件打开选择器,用于选择要在列表项中显示的图像。

但是,从文件打开选择器中获取图像路径后,无法将路径设置为图像源,既不能作为 URI,也不能作为网络路径(尝试“file:///”+路径)。

有没有办法从文件打开选择器选择的路径中显示图像?

如果没有,有没有办法在应用程序中从计算机打开本地图像?

0 投票
1 回答
268 浏览

c# - 不能在 uwp c# .net core 中使用 FileOpenPicker,还有其他方法可以在 uwp 中上传图片吗?

我不想为我的 uwp 应用程序创建照片上传方法,但没有办法这样做,因为我不能使用 FileOpenPicker 或任何其他选择器!它找不到 FileOpenPicker,即使声明为 Windows.Storage.Pickers.FileOpenPicker(); 它抱怨找不到类型或命名空间 Windows。即使我将using Windows.Storage.Pickers;NuGet UwpDesktop-Updated 安装在文件顶部也无济于事。这很奇怪,因为我已经在谷歌上搜索了好几天,但没有找到其他人遇到我的问题!

还有其他方法可以使用 c# .net core 在 uwp 中上传照片吗?

0 投票
1 回答
343 浏览

c# - 在 Unity 开发中使用 FileOpenPicker 应用程序合约 Hololens 2

这篇文章类似,我正在尝试将 FileOpenPicker 实现到我的 hololens 2 应用程序中。但是,我是通过统一的混合现实工具包执行此操作的,并且在找出如何在应用程序中设置合同时遇到了一些麻烦。

我知道我上面链接的帖子将您定向到 FileOpenPicker,这是我一直在尝试做的,但我对他们拥有的示例以及如何在统一 C# 中做到这一点有点困惑。

关于如何使这项工作发挥作用的任何建议都会有很大帮助。谢谢!

还有这篇文章有助于如何使用 FileOpenPicker,但它针对的是独立的 UWP 应用程序,而不是统一构建的东西。

0 投票
1 回答
273 浏览

c# - 在 Hololens 上评估 OpenFilePicker 时调用 System.Exception

我正在将 MRTK 用于 hololens 应用程序,我需要选择用户放入其文档文件夹中的文件。我正在尝试访问 FileOpenPicker 并通过按下按钮使用 PickSingleFileAsync() 函数来获取文件,然后将其加载到我的应用程序中。

这个函数里面的代码基本上就是我在做的:

(代码源)

但是,当我构建并部署到 Hololens Emulator 时,当我按下按钮时,它会很好地运行代码的第一部分,但在这一行出现异常

StorageFile file = await openPicker.PickSingleFileAsync();

经过广泛的研究和一些挫折后,我在这里发表了一篇非常糟糕和模糊的帖子。

在那篇文章中,我引用了 2 年前发表的这篇文章,并说你不能这样做,但Hololens 的 Microsoft 文档说你可以使用文件选择器,在这种情况下是 FileOpenPicker。

我在 Windows Mixed Reality 开发人员论坛中发现了这篇文章,虽然这不是我遇到的问题,但我仍然觉得有必要将其包含在这篇文章中。

我还想补充一点,我确实安装了一个文件选择器应用程序。根据Microsoft Docs 上的这篇文章,如果您调用 FileOpenPicker,它将打开您设备上首次安装的任何文件选择器。

同样在 MRTK 和正在生成的 Appx 中,我确保启用“PictureLibrary”功能的权限。

任何帮助将不胜感激,我觉得我已经等了太久才能就这个主题发表更正式的帖子,我希望能得到一些答案。谢谢!

0 投票
1 回答
146 浏览

xaml - 在未过滤以显示所有文件的 FileOpenPicker 中显示除“所有文件”之外的其他内容

我正在编写的 winrt 项目中通过 Windows::Storage::Pickers::FileOpenPicker 显示打开文件对话框。当我在选择器上设置 FileTypeFilter 属性时,它可以工作,但显示的名称仍然显示“所有文件”。

我在 docs.microsoft.com 上看到 FileSavePicker 有一个 FileTypeChoices 属性,该属性包含一个映射而不是一个向量,允许保存选择器为每种类型提供名称,但我只能找到文件打开选择器的 FileTypeFilter 向量。即使是 Microsoft 示例的屏幕截图也显示“所有文件”,即使它已被过滤

我知道必须有某种方法可以做到这一点,因为我已经看到很多带有能够显示名称的文件打开选择器的程序。


有谁知道如何让打开的文件选择器显示默认的“所有文件”以外的内容?

注意:我已经做 c++ 几年了,但我对 c++/winrt 还是很陌生(就像,本周早些时候刚刚了解了 winrt 是什么)所以我仍然不确定如何做很多基本的东西,比如以正确的方式设置文件选择器

这是创建和打开对话框的代码:

这是我运行文件选择器时的一个片段:在此处输入图像描述

显示我需要的方式的文件选择器示例(这个来自记事本):在此处输入图像描述

0 投票
0 回答
26 浏览

c# - 调用时 fileOpenPicker 未执行

变量 inputFile 保持为空,因为 fileOpenPicker 由于某种原因没有执行,这个函数曾经完美地工作它打开了一个文件资源管理器,让我选择一个我不知道是什么让它表现得像这样的图像

0 投票
1 回答
18 浏览

uwp - Uwp MenuBaritem 点击事件 什么也没有发生

不要生我的气,我很业余,但我已经为此工作了很长时间,但我无法弄清楚。我一直在研究这个 uwp 文本编辑器,并添加了一个带有一些项目的 MenuBar。我试图让打开按钮弹出 FileOpenPicker 但无论我做什么都不起作用。请帮忙!

Example.xaml


*example.cs*