www.pudn.com > fat32.c51.rar > 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"); else printf("\t"); 
				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"); else printf("\t"); 
				printf("\t%ld",MEMSwap32(sDIR[i].FileSize)); 
				printf("\n"); 
			} 
		} 
	} 
	return(0); 
}