gpt4 book ai didi

Windows 7 中的 Java 文件 API 问题

转载 作者:行者123 更新时间:2023-12-01 05:32:30 25 4
gpt4 key购买 nike

基本上,我只是尝试使用 Java File 类中的 list 函数来运行文件夹中所有文件的列表:artistList = (new File(myPathName)).list();

但是我得到的是一些丢失的文件,即使我在 Windows 7 中“显示隐藏文件”之后也是如此。我想知道这些文件在哪里。

如果有帮助的话,我正在搜索的路径是像 /media 这样的文件夹,我已将其组织到 /media/artist/album/title.mp3 中我所有的歌曲数据。我最终找到的额外文件是AlbumArt jpeg 文件(我事先使用songbird 版本9 对文件夹进行排序,我只是尝试使用一个小型Java 程序自己重命名匹配的ID3 标签)。

最佳答案

对于您所描述的组织,搜索/列表开始的目录 /media 中不会有媒体文件,您必须导航子目录,直到到达 /media/artist/相册 从那里您可以获取您实际查找的文件。此外,您可能还需要向 list 方法添加一个过滤器,并实现过滤器的接受方法以剔除缩略图和隐藏的元文件。

这里有一段代码(未经测试)可以帮助您

private final static Set<String> mediaExtensions; 

static {
mediaExtensions = new HashSet<String>();
mediaExtensions.add(".mp3");
mediaExtensions.add(".wav");
mediaExtensions.add(".ogg");
// and so on
}

public static void list(File file, List<File> result) {
if(file.isFile()) {
result.add(file);
} else if(file.isDirectory()) {
File files[] = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
boolean accept = false;
int i = pathname.getName().lastIndexOf('.');
if(i != -1) {
String ext = pathname.getName().substring(i);
accept = (! pathname.isHidden()) &&
mediaExtensions.contains(ext);
}
return accept;
}
});
if(files != null) {
for(File f : files) {
list(f, result);
}
}
}
}

关于Windows 7 中的 Java 文件 API 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com