【问题标题】:how to distinguish directory and file entry in fat16?fat16中如何区分目录和文件入口?
【发布时间】:2012-11-21 05:55:24
【问题描述】:

如果在 fat16 系统中,我对区分子目录和文件感到很困惑。子目录和文件结构相似,如何区分目录和文件,如何遍历目录到达文件?

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

【问题讨论】:

  • 名称不是目录的指示符。请改为检查文件属性。

标签: filesystems fat fat16


【解决方案1】:

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

目录“文件”的内容是一个目录条目数组。

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

  1. SearchDirectory = 根
  2. 从剩余路径解析 8.3 名称
  3. DirectoryEntry = 在 SearchDirectory 中查找 8.3 名称
  4. 如果剩余路径为空,则 DirectoryEntry 是请求的实体
  5. 如果 Directory.Attribute & 0x10 == 0 则 ERROR(期望目录)
  6. SearchDirectory = DirectoryEntry.contents
  7. 转到 2

【讨论】:

  • 有关格式的更多详细信息,您可以访问 MSDN.microsoft.com。
猜你喜欢
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
相关资源
最近更新 更多