[已解决]中文名字的mp3系统是按什么顺序搜索的
本帖最后由 haijie1223 于 2016-1-13 16:17 编辑我用下面的代码,显示的顺序并非按照名称、修改时间、创建时间顺序来显示。请问是按照什么顺序来排列的。
答案:按照复制到当前文件夹的先后顺序,先复制进来的在前,后复制进来的在后。如果把先复制进来的文件剪切到其他地方,然后再复制回来,那么再显示的时候,又跑到后面去了。
#include <array.au3>
#include <file.au3>
Dim $list = _FileListToArray(@ScriptDir)
_ArrayDisplay($list)
收藏,等奇迹。学习 mp3等文件排序有其特殊性,可能和其 ID3 标签有关 回复 3# afan
这个我测试过,好像与ID3标签无关。主要还是在windows的读取原则上。 回复 4# haijie1223
看你的贴图 箭头所示 至少和创建日期时间有关 回复 5# afan
确实和创建时间是有关系,一直不明白windows为什么这么排序,还不能更改。因为我要把歌曲放到U盘里,插到车上听,车上的电脑是windows系统,车上的电脑播放顺序和AU3的_FileListToArray读取顺序是一样一样的。 回复 6# haijie1223
在列表头点击右键看看有木 回复 7# afan
木有啊~ 回复 8# haijie1223
XP反正是有的… 回复 9# afan
麻烦A版给个图片看下 回复 10# haijie1223 回复 11# afan
这个是explorer的一个排列方式,和AU3的读取顺序无关。刚刚又测试了一下。
在一个文件夹中,用以下代码来显示的话,是按照文件复制到文件夹的先后顺序显示的,和名称、ID3标签、修改时间、创建时间无关。#include <array.au3>
#include <file.au3>
Dim $list = _FileListToArray(@ScriptDir)
_ArrayDisplay($list)
回复 12# haijie1223
_FileListToArray() 是按文件名排序的,上面的代码也一样啊。不过没测试mp3 本帖最后由 haijie1223 于 2016-1-13 13:04 编辑
回复 13# afan
似乎不是按照文件名排序
本帖最后由 luren666 于 2016-1-13 15:08 编辑
_FileListToArray应该也是使用了两个API:"FindFirstFile "、"FindNextFile ",在au3里也有对应的函数。这个读取顺序应该也是受“文件分配表”的影响。
每个分区都有一个"文件分配表",这个表记录了此分区所有的文件在硬盘中的具体磁道、柱面等位置信息,如果这个"文件分配表"丢失,那么这个分区内的文件也就因为不知道在硬盘中的具体位置而无法读取,当然一些数据恢复软件是可以恢复出来的. 我感觉这个文件的排序要么就是跟 文件在文件分配表中所处的位置有关系,而这个位置又是受文件系统的规则来分配的,很可能是随机分配的.要么就是跟文件在硬盘中所存储的磁道位置有关系,这个也是随机的,无法人为控制.所以想人为的对文件读取顺序排序似乎无法做到.不过有一个不是很好用的办法:把你想先播放的歌曲放到U盘根目录,其它歌放到子文件夹下。 还有,可以试试将U盘格式化一下,然后一个一个文件复制进去,尝试一下是不是按照写入顺序来读取的,我估计这样是可以的,没有测试过,不过这样下次再想重新排序又要格式化,不实用。
页:
[1]
2