【摘要】:在了解了上面一些概念后,FAT32文件卷上的文件查找过程就很简单了。假设查找的文件路径和文件名为“C:\HelloChina\Application\info.txt”,则查找的过程如下:文件系统代码首先逐个检查根目录内的目录项,试图找到第一级目录项“HelloChina”。这时候文件系统代码会把HelloChina目录读入内存,逐个匹配该目录下的目录项,试图查找“Application”目录。在HelloChina目录下找到Application目录项后,文件系统会进一步得到该目录的起始簇号和大小等数据,然后再以“info.txt”为关键字搜索Application目录。
在了解了上面一些概念后,FAT32文件卷上的文件查找过程就很简单了。下面以一个具体的例子,来说明查找过程。假设查找的文件路径和文件名为“C:\HelloChina\Application\info.txt”,则查找的过程如下:
(1)文件系统代码首先逐个检查根目录内的目录项,试图找到第一级目录项“HelloChina”。注意,根目录的起始扇区号,是在BPB当中存放的,文件系统可直接得到。任何目录内的目录项,都符合上面介绍的FAT32目录项结构。
(2)找到HelloChina目录项后,在该目录项内存放了这个目录的起始簇号、目录尺寸等内容。这时候文件系统代码会把HelloChina目录读入内存,逐个匹配该目录下的目录项,试图查找“Application”目录。当然,如果不存在这个目录,则查找失败,我们假设这个目录是存在的。(www.xing528.com)
(3)在HelloChina目录下找到Application目录项后,文件系统会进一步得到该目录的起始簇号和大小等数据,然后再以“info.txt”为关键字搜索Application目录。如果搜索完整个目录后找不到info.txt文件,则查找失败。如果能够匹配到合法的目录项,则查找成功。一旦找到对应的目录项,文件的基础信息,比如存放的起始cluster号等,即可得到。
查找完成之后,目标文件的信息就得到了,于是可以进行进一步的读取、写入等操作。在上述过程中,任何目录的读取操作,如果涉及多个cluster,则需要访问文件分配表(FAT),来找到属于该目录的cluster,然后读取其中的内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。