| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- /*------------------------------------------------------------/
 
- / Remove all contents of a directory
 
- / This function works regardless of _FS_RPATH.
 
- /------------------------------------------------------------*/
 
- FRESULT empty_directory (
 
-     char* path      /* Working buffer filled with start directory */
 
- )
 
- {
 
-     UINT i, j;
 
-     FRESULT fr;
 
-     DIR dir;
 
-     FILINFO fno;
 
- #if _USE_LFN
 
-     fno.lfname = 0; /* Disable LFN output */
 
- #endif
 
-     fr = f_opendir(&dir, path);
 
-     if (fr == FR_OK) {
 
-         for (i = 0; path[i]; i++) ;
 
-         path[i++] = '/';
 
-         for (;;) {
 
-             fr = f_readdir(&dir, &fno);
 
-             if (fr != FR_OK || !fno.fname[0]) break;
 
-             if (_FS_RPATH && fno.fname[0] == '.') continue;
 
-             j = 0;
 
-             do
 
-                 path[i+j] = fno.fname[j];
 
-             while (fno.fname[j++]);
 
-             if (fno.fattrib & AM_DIR) {
 
-                 fr = empty_directory(path);
 
-                 if (fr != FR_OK) break;
 
-             }
 
-             fr = f_unlink(path);
 
-             if (fr != FR_OK) break;
 
-         }
 
-         path[--i] = '\0';
 
-         closedir(&dir);
 
-     }
 
-     return fr;
 
- }
 
- int main (void)
 
- {
 
-     FRESULT fr;
 
-     FATFS fs;
 
-     char buff[64];    /* Working buffer */
 
-     f_mount(&fs, "", 0);
 
-     strcpy(buff, "/");  /* Directory to be emptied */
 
-     fr = empty_directory(buff);
 
-     if (fr) {
 
-         printf("Function failed. (%u)\n", fr);
 
-         return fr;
 
-     } else {
 
-         printf("All contents in the %s are successfully removed.\n", buff);
 
-         return 0;
 
-     }
 
- }
 
 
  |