在看EXAM13文件枚举的程序中遇到不明白的地方,求指导! for ( FileCount = 1; OldFileCount < FileCount; OldFileCount ++ ) { if ( FileNameBuffer[ OldFileCount ].Attr & ATTR_DIRECTORY ) { strcpy( mCmdParam.Open.mPathName, FileNameBuffer[ OldFileCount ].Name ); CH375vStartCluster = FileNameBuffer[ OldFileCount ].DirStartClust; /* 当前目录的上级目录的起始簇号,便于用相对路径打开,比完整路径名速度快 */ i = CH375FileOpen( ); if ( i == ERR_SUCCESS ) return( ERR_MISS_DIR ); /* 应该是打开了目录,但是返回结果是打开了文件 */ if ( i != ERR_OPEN_DIR ) return( i ); if ( OldFileCount ) CurrentDirStartClust = CH375vStartCluster; /* 不是根目录,获取目录的起始簇号 */ else { /* 是根目录,获取根目录的起始簇号 */ if ( CH375vDiskFat == DISK_FAT32 ) CurrentDirStartClust = CH375vDiskRoot; /* FAT32根目录 */ else CurrentDirStartClust = 0; /* FAT12/FAT16根目录 */ } CH375FileClose( ); /* 对于根目录一定要关闭 */
1、当OldFileCount为0时,其中的FileOpen()实现的是什么? 2、FileOpen()后面的注释说“打开目录,仅为了获取目录的起始簇号以提高速度 ”,这句话没明白什么意思,可不可以解释一下?