拖放和复制粘贴对 FAT32 文件表的影响

拖放和复制粘贴对 FAT32 文件表的影响

我有一个数字音乐转换器,可以模拟汽车收音机的 CD 转换器。它可以从 SD 卡读取 mp3 文件,但播放顺序是“根据文件复制到 SD 卡的时间”决定的。

我做了以下观察:

  • 一次复制多个文件(仅通过拖放测试)会导致播放顺序几乎随机
  • 通过拖放方式复制文件会导致随机播放顺序(未经验证)似乎与一次复制所有文件时的播放顺序相同。
  • 使用剪贴板快捷方式逐个复制文件可以获得正确的播放顺序。

我还编写了一个简单的 C# 程序,按字母顺序覆盖每个文件的创建/访问/上次写入时间属性,但这对播放顺序没有影响。我将其改为逐个复制每个文件,但这也无济于事。使用名为“Mp3DirSorter”的程序也无济于事。

我目前的猜测是该设备从 FAT32 文件表读取文件。如果这是正确的,我想知道:

  • 为什么拖放和复制粘贴会导致不同的结果?
  • 如何在 Fat 文件表中重新排列文件?(可能重复的问题)

另外:值得注意的是,每次测试之间可能没有格式化 SD 卡。

答案1

您的播放器似乎按照文件在目录中出现的顺序来选择曲目。此顺序取决于许多因素,并且由于删除的文件会在目录中留下空白,而这些空白随后会被新添加的文件填充,因此几乎无法预测。

因此,如果您需要保证顺序:

  1. 格式化 SD 卡以清除所有目录条目
  2. 按要求的顺序逐个复制文件

拖放操作依赖于实现。在我的 Windows XP 机器上,它似乎取决于拖动时单击的文件:如果我选择 10 个名为file0...的文件file9并在单击 时拖动它们file5,则结果顺序将是file5... file9 file0... file4。因此,如果您想使用拖放,请尝试在拖动时单击第一个文件。

提示:Windowsdir命令按文件在目录中出现的顺序列出文件。因此,如果您的音乐播放歌曲的顺序与dir输出的顺序相同,则此答案是相关的;否则,其他因素会影响它选择歌曲的方式。

相关内容