如何使用path名称从Windows Phone(8.1)音乐库检索文件?

如何使用path名称从Windows Phone(8.1)音乐库检索文件?,第1张

概述如何使用path名称从Windows Phone(8.1)音乐库检索文件?

我让我的用户从音乐库中select文件。 之后,我在本地存储所选文件的path。 现在我的问题是如何从这些path以编程方式访问文件? 这是我尝试过的一些事情。

说我的path名是D: Xyz abc.mp3

StorageFolder S = KNownFolders.Musiclibrary;

备选案文1:

如何获取远程桌面客户端的IP地址?

在windows命令行中拥有自己的calc

windows CMD删除目录

关于静态库和DLL

我在哪里可以得到DLL在windows上部署应用程序的Qt?

Storagefile Myfile =等待S.GetfileAsync(“abc.mp3”); //找不到文件错误

//我认为这不起作用GetfileAsync方法只能从当前文件夹中获取文件

备选案文2:

S =等待S.GetFolderAsync(“Xyz”); //之后我打算做GetfileAsync。 但是这也给文件夹找不到错误。

最后,我试过S = await S.GetFolderAsync(“D”);

任何帮助我如何获得文件,甚至是一个替代方法来实现我的目标将是太棒了!

PS:Storagefile.GetfileFromPathAsync(“D: Xyz abc.mp3”)说我没有权限访问。

如何在python中设置本地DNS服务器

从我的应用程序中打开由我的服务创build的Event对象

Tomcat6不会在windows和Java6上启动

与Microsoft CRT和OpenMP静态链接

scanf_s抛出exception

(回答重建更清楚)

如果你已经在package.appxmanifest文件中声明了:

功能中的Music library功能

声明中的 file Type Association (如果只访问音乐库,我不确定是否需要)

那么你将能够像这样从Music library文件夹中检索文件:

StorageFolder folder = KNownFolders.Musiclibrary; // below code will work unless 'filename.mp3' is in // your Music folder either on phone or SD card Storagefile file = await folder.GetfileAsync("filename.mp3"); // you can access them also with path,but in this case // also Folders must be in Music folder string path = @"Testccc.mp3"; Storagefile file = await folder.GetfileAsync(path);

总结一下,只有通过KNownFolders.Musiclibrary才能将文件KNownFolders.Musiclibrary到手机或SD卡上的音乐文件夹中 – 它们的路径将是:

C: Data Users Public Music test.mp3 – 用于电话

D: Music Test test2.mp3 – 用于SD卡

请记住,通过StorageFolder.GetfileAsync()访问相对于StorageFolder工作(它也将使用完整路径,请参阅下面的注释):

要检索的文件的名称(或相对于当前文件夹的路径)。

在这种情况下,要获取上述文件,您将使用文件名如: test.mp3和Testtest2.mp3 。

您将无法获得其他文件,如D:xxx.mp3 – 它不在音乐库中 – 它位于SD卡上,如果您想访问它,您必须通过KNownFolders.RemovableDevices来完成 – 当你已经添加了所需的功能,那么你应该可以通过完整路径访问它。 但也请记住这个话:

不要依赖此属性来访问文件,因为某些文件可能没有文件系统路径。 例如,如果文件是由URI支持的,或者是使用文件选取器挑选的,则文件不保证具有文件系统路径。

在我们的讨论中确定您正在使用Commonfilequery.OrderByname来获取文件。 正如我已经检查(IMO)可能是一个小错误 – 在VS描述说:

深层查询的查询结果包括查询文件夹的所有子文件夹中的所有文件,并根据指定的元数据对其进行排序。

运行一段代码:

// a method to retrIEve files from Musiic library recursively private async Task RetrivefilesInFolders(List<Storagefile> List,StorageFolder parent) { foreach (var item in await parent.GetfilesAsync()) List.Add(item); foreach (var item in await parent.GetFoldersAsync()) await RetrivefilesInFolders(List,item); } // then I've used it like this: StorageFolder folder = KNownFolders.Musiclibrary; List<Storagefile> listoffiles = new List<Storagefile>(); await RetrivefilesInFolders(listoffiles,folder); // as a result of above code I have a List of 5 files that are in Music library List<IStorageItem> filesFolders = (await folder.GetItemsAsync()).ToList(); List<Storagefile> items = (await folder.GetfilesAsync(Commonfilequery.OrderByname)).ToList(); // as a result here I've 14 files that are in Music library and SD card,and Phone

已经给出了结论:

在第一种情况下,实际上在“音乐”文件夹及其子文件夹中的5个文件,

在第二种情况下 – 音乐库,SD卡和电话中的14个文件

您可以在调试模式下轻松查看Path ,您将看到第二种方法中的一些文件具有D:file.mp3等等 – 它们不在音乐库中 – 所以您将无法获取它们由KNownFolders.Musiclibrary 。 如果你想得到他们,那么你将不得不使用其他已知文件夹 – 在这种情况下,SD卡:

StorageFolder externalDevices = windows.Storage.KNownFolders.RemovableDevices; StorageFolder sdCard = (await externalDevices.GetFoldersAsync()).FirstOrDefault(); Storagefile file = await sdCard.GetfileAsync("xyz.mp3"); // for D:xyz.mp3 Storagefile file = await sdCard.GetfileAsync("XYZxyz.mp3"); // for D:XYZxyz.mp3

首先,确保你有适当的能力设置。 如果你没有声明正确的CAP_ID,你得到的错误是你会看到的。 这是一个截图:

关于文件路径,取决于文件的存储位置,您可能需要使用双斜杠。 我有类似的问题,我通过使用以下方法解决:

“isostore:共享\ FolDERname \ nameOffile.mp3”

你可以在我的SO帖子里看到整个过程。

您将需要使用访问缓存来存储对文件的访问,而不是路径。 这样可以让您检索您可以立即使用的Storagefile对象,并且可以帮助您移动文件。

将文件存储在访问缓存中

Storagefile file; //Get a file string mruToken = windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(file,"20120716");

然后,您将标记保存在某处。 从缓存中取回文件:

Storagefile file = await windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.getfileAsync(mruToken);

只保存路径,就可以解决驱动器号改变等问题。 这可以确保,如果文件仍然可用,您的应用程序可以得到它。

总结

以上是内存溢出为你收集整理的如何使用path名称从Windows Phone(8.1)音乐库检索文件?全部内容,希望文章能够帮你解决如何使用path名称从Windows Phone(8.1)音乐库检索文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存