📄 fat16listdirectory.c
字号:
#ifndef _FAT_DEFINE
#include "FAT.c"
#endif
BYTE FAT16ListDirectory(void);
BYTE FAT16ListDirectory(void)
{
xdata BYTE i,j,m;
xdata DWORD Sector;
xdata struct FATClusterStr ReadCluster;
if (FAT.CurrentDirectory==FAT.RootClus) //根目录
{
Sector=FAT.CurrentDirectory;
for(m=0;m<FAT.RootSectors;m++)
{
StorageMedia.ReadSector(Sector++,DiskBuffer);
for (i=0;i<16;i++)
{
if (sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00) continue; //空目录项跳过
if (sDIR[i].Attr&FAT_ATTR_VOLUME_ID)
printf("Driver Volume:");
for(j=0;j<11;j++)
printf("%c",sDIR[i].Name[j]);
if (sDIR[i].Attr&FAT_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
printf("\n");
}
}
}
else
{
ReadCluster.Cluster=FAT.CurrentDirectory;
ReadCluster.SecOffset=0;
while(ReadCluster.Cluster!=FAT_CLUSTER_END16)
{
FATReadCluster(&ReadCluster,DiskBuffer);
for (i=0;i<16;i++)
{
if (sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00) continue; //空目录项跳过
if (sDIR[i].Attr&FAT_ATTR_VOLUME_ID)
printf("Driver Volume:");
for(j=0;j<11;j++)
printf("%c",sDIR[i].Name[j]);
if (sDIR[i].Attr&FAT_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
printf("\n");
}
}
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -