惠普|我如何使用 Groovy 分析我的音乐目录( 二 )


第 10 行对每个 artistDir 调用 eachDir() , 第 10 行的 { 和第 17 行的  之间的代码形成另一个处理 albumDir 的闭包 。
第 14 行 , 在每个 albumDir 上调用 eachFile() , 第 14 行的 { 和第 16 行的  之间的代码形成了处理专辑内容的第三级闭包 。
在本文的范围内 , 我对每个文件唯一需要做的就是开始构建信息表 , 我将其创建为一个以竖线分隔的 CSV 文件 , 它可以导入 LibreOffice 或 OfficeOnly 或任何其他电子表格 。 现在 , 代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样 , 第 2 行输出 CSV 标题行) 。
在我的 Linux 笔记本电脑上运行它会产生以下输出:
$ groovy TagAnalyzer.groovy | head
artistDir|albumDir|contentFile
Habib Koite & Bamada|Afriki|02 - Ntesse.flac
Habib Koite & Bamada|Afriki|08 - NTeri.flac
Habib Koite & Bamada|Afriki|01 - Namania.flac
Habib Koite & Bamada|Afriki|07 - Barra.flac
Habib Koite & Bamada|Afriki|playlist.m3u
Habib Koite & Bamada|Afriki|04 - Fimani.flac
Habib Koite & Bamada|Afriki|10 - Massake.flac
Habib Koite & Bamada|Afriki|11 - Titati.flac
Habib Koite & Bamada|Afriki|03 – Africa.flac
[...

Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell
.flac
Richard Crandell|Spring Steel|Spring Steel.pdf
Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell
.flac
Richard Crandell|Spring Steel|cover.jpg
$

在性能方面:
$ time groovy TagAnalyzer.groovy | wc -l9870real0m1.482suser0m4.392ssys0m0.230s$

又好又快 。 它在一秒半内处理近 10000 个文件!对我来说足够快 。 可观的性能、紧凑且可读的代码 , 还有什么不喜欢的?