]> cloudbase.mooo.com Git - z180-stamp.git/blame - fatfs/documents/res/app2.c
Import fatfs R0.13b
[z180-stamp.git] / fatfs / documents / res / app2.c
CommitLineData
53668523
L
1/*------------------------------------------------------------/\r
2/ Remove all contents of a directory\r
289f6a14 3/ This function works regardless of FF_FS_RPATH.\r
53668523
L
4/------------------------------------------------------------*/\r
5\r
6\r
289f6a14
L
7FILINFO fno;\r
8\r
53668523
L
9FRESULT empty_directory (\r
10 char* path /* Working buffer filled with start directory */\r
11)\r
12{\r
13 UINT i, j;\r
14 FRESULT fr;\r
15 DIR dir;\r
53668523 16\r
53668523
L
17 fr = f_opendir(&dir, path);\r
18 if (fr == FR_OK) {\r
19 for (i = 0; path[i]; i++) ;\r
20 path[i++] = '/';\r
21 for (;;) {\r
22 fr = f_readdir(&dir, &fno);\r
23 if (fr != FR_OK || !fno.fname[0]) break;\r
24 if (_FS_RPATH && fno.fname[0] == '.') continue;\r
25 j = 0;\r
26 do\r
27 path[i+j] = fno.fname[j];\r
28 while (fno.fname[j++]);\r
29 if (fno.fattrib & AM_DIR) {\r
30 fr = empty_directory(path);\r
31 if (fr != FR_OK) break;\r
32 }\r
33 fr = f_unlink(path);\r
34 if (fr != FR_OK) break;\r
35 }\r
36 path[--i] = '\0';\r
37 closedir(&dir);\r
38 }\r
39\r
40 return fr;\r
41}\r
42\r
43\r
44\r
45int main (void)\r
46{\r
47 FRESULT fr;\r
48 FATFS fs;\r
289f6a14 49 char buff[256]; /* Working buffer */\r
53668523
L
50\r
51\r
52\r
53 f_mount(&fs, "", 0);\r
54\r
55 strcpy(buff, "/"); /* Directory to be emptied */\r
56 fr = empty_directory(buff);\r
57\r
58 if (fr) {\r
59 printf("Function failed. (%u)\n", fr);\r
60 return fr;\r
61 } else {\r
62 printf("All contents in the %s are successfully removed.\n", buff);\r
63 return 0;\r
64 }\r
65}\r
66\r
67\r
68\r