首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用VB访问音乐库目录条目中的所有字段?

是否可以使用VB访问音乐库目录条目中的所有字段?
EN

Stack Overflow用户
提问于 2021-05-02 05:21:48
回答 1查看 38关注 0票数 1

Win10音乐库中显示的条目包括文件名、参与创作的艺术家、专辑名称、曲目编号和歌曲标题。我知道如何在Visual Basic中使用directory.getfiles方法获取文件名。有没有办法也以编程方式获取其他字段?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 06:12:57

这可以通过在项目引用的COM选项卡中添加对"Microsoft Shell Controls and Automation“的引用来完成。

添加引用后,您将能够实例化Shell对象

代码语言:javascript
复制
Dim info As List(Of String) = New List(Of String)
Dim shell As Shell32.Shell = New Shell32.Shell()

' Path to the MyMusic folder
Dim musicPath = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)
Dim musicFolder As Shell32.Folder = shell.NameSpace(musicPath)

此时,您将能够查询该文件夹中的每个项目并请求其扩展属性

代码语言:javascript
复制
For Each item As Shell32.FolderItem2 In musicFolder.Items()
    ' Title
    Console.WriteLine($"Title: {musicFolder.GetDetailsOf(item, 21)}")
    ' Author
    Console.WriteLine($"Author: {musicFolder.GetDetailsOf(item, 20)}")
    ' Album
    Console.WriteLine($"Album: {musicFolder.GetDetailsOf(item, 14)}")
    ' Artist
    Console.WriteLine($"Part.: {musicFolder.GetDetailsOf(item, 13)}")
    ' Track
    Console.WriteLine($"Track.: {musicFolder.GetDetailsOf(item, 26)}")
    ' Duration
    Console.WriteLine($"Length: {musicFolder.GetDetailsOf(item, 27)}")
    ' Bits
    Console.WriteLine($"Bits: {musicFolder.GetDetailsOf(item, 28)}")
    Console.WriteLine()
Next

要了解对GetDetailsOf调用中这些神奇数字的描述,可以看一下这个问题:What options are available for Shell32.Folder.GetDetailsOf

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67350961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档