Filesystems fat16中如何区分目录和文件条目?

Filesystems fat16中如何区分目录和文件条目?,filesystems,fat,fat16,Filesystems,Fat,Fat16,如果在fat16系统中,我对如何区分子目录和文件感到非常困惑。由于子目录和文件具有相似的结构,我们如何区分目录和文件,以及如何遍历目录以到达文件 我最初认为所有目录条目都将以“0x2e”开头,作为fat16中8.3命名约定的第一个字节。但实际上,我找不到所有以0x2e开头的目录,而是直接找到目录名。 那么,如何区分fat16中的目录和文件?目录在属性字段中设置了0x10位;文件没有。第一个字节是“.”(0x2E),表示自身目录和父目录(如果存在)(它们不在根目录中) 目录“file”的内容是一组

如果在fat16系统中,我对如何区分子目录和文件感到非常困惑。由于子目录和文件具有相似的结构,我们如何区分目录和文件,以及如何遍历目录以到达文件

我最初认为所有目录条目都将以“0x2e”开头,作为fat16中8.3命名约定的第一个字节。但实际上,我找不到所有以0x2e开头的目录,而是直接找到目录名。
那么,如何区分fat16中的目录和文件?

目录在属性字段中设置了0x10位;文件没有。第一个字节是“.”(0x2E),表示自身目录和父目录(如果存在)(它们不在根目录中)

目录“file”的内容是一组目录条目

忽略长文件名,搜索文件的方式是:

  • SearchDirectory=root
  • 从剩余路径解析8.3名称
  • DirectoryEntry=在SearchDirectory中查找8.3名称
  • 如果剩余路径为空,则DirectoryEntry是请求的实体
  • 如果Directory.Attribute&0x10==0,则出现错误(应为目录)
  • SearchDirectory=DirectoryEntry.contents
  • 转到2

  • 名称不是目录的指示符。改为检查文件属性。有关格式的详细信息,请访问MSDN.microsoft.com。