📄 fat32listdirectory.lst
字号:
C51 COMPILER V7.50 FAT32LISTDIRECTORY 07/13/2005 11:18:29 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE FAT32LISTDIRECTORY
OBJECT MODULE PLACED IN FAT32LISTDIRECTORY.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE FAT32LISTDIRECTORY.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #ifndef _FAT32_DEFINE
2 #include "FAT32.c"
3 #endif
4
5 BYTE FAT32ListDirectory(void);
6
7 BYTE FAT32ListDirectory(void)
8 {
9 1 xdata BYTE i,j,k,m,n;
10 1 xdata DWORD chain;
11 1 xdata CHAR temp[27];
12 1
13 1 // filename=(CHAR *)malloc(sizeof(j*26+1));
14 1
15 1 chain=FAT32.CurrentDirectory;
16 1 FAT32.ClusSecCnt=0;
17 1 while(chain!=0x0fffffff)
18 1 {
19 2 FAT32ReadCluster(&chain);
20 2 for (i=0;i<16;i++)
21 2 {
22 3 if (sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00) continue; //空目录项跳过
23 3 MEMSwap32(sDIR[i].FileSize);
24 3 if ((sDIR[i].Attr&FAT32_ATTR_LONG_NAME_MASK)==FAT32_ATTR_LONG_NAME)
25 3 //长文件名
26 3 {
27 4 j=lDIR[i].Ord - FAT32_LAST_LONG_ENTRY;
28 4 LongFileName[0]=0;n=0;
29 4 for(;j>0;j--)
30 4 {
31 5 FAT32GetPartLongName(lDIR+i,temp);
32 5 m=strlen((char *)temp);
33 5 k=m+n;
34 5 for(;n>0;n--)
35 5 LongFileName[m+n]=LongFileName[n];
36 5 LongFileName[m+n]=LongFileName[n];
37 5 m--;
38 5 for(;m>0;m--)
39 5 LongFileName[m]=temp[m];
40 5 LongFileName[m]=temp[m];
41 5 n=k;
42 5 i++;
43 5 if (i==16)
44 5 {
45 6 FAT32ReadCluster(&chain);
46 6 i=0;
47 6 }
48 5 }
49 4 printf("%s\t",LongFileName);
50 4 if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
51 4 printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
52 4 printf("\n");
53 4 }
54 3 else
55 3 {
C51 COMPILER V7.50 FAT32LISTDIRECTORY 07/13/2005 11:18:29 PAGE 2
56 4 //短文件名
57 4 if (sDIR[i].Name[0]!=0xe5&&sDIR[i].Name[0]!=0x00)
58 4 {
59 5 if (sDIR[i].Attr&FAT32_ATTR_VOLUME_ID)
60 5 printf("Driver Volume:");
61 5 for(j=0;j<11;j++)
62 5 printf("%c",sDIR[i].Name[j]);
63 5 if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
64 5 printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
65 5 printf("\n");
66 5 }
67 4 }
68 3 }
69 2 }
70 1 return(0);
71 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 823 ----
CONSTANT SIZE = 44 ----
XDATA SIZE = ---- 36
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -