diff options
author | inmarket <andrewh@inmarket.com.au> | 2014-08-13 15:48:16 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2014-08-13 15:48:16 +1000 |
commit | efa13a879df590ce0043a5b4f97597484bf264e1 (patch) | |
tree | dcded7e06aa5467496d4f9aa365e00fb096a6801 /3rdparty/fatfs-0.10b/doc/img/app2.c | |
parent | 10902154aec652a3fcdf028b2c6ff16743464973 (diff) | |
download | uGFX-efa13a879df590ce0043a5b4f97597484bf264e1.tar.gz uGFX-efa13a879df590ce0043a5b4f97597484bf264e1.tar.bz2 uGFX-efa13a879df590ce0043a5b4f97597484bf264e1.zip |
Move 3rd Party source to a new directory.
Rationalise Fatfs code and fix a couple of configuration issues.
Diffstat (limited to '3rdparty/fatfs-0.10b/doc/img/app2.c')
-rw-r--r-- | 3rdparty/fatfs-0.10b/doc/img/app2.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/3rdparty/fatfs-0.10b/doc/img/app2.c b/3rdparty/fatfs-0.10b/doc/img/app2.c new file mode 100644 index 00000000..b1ecd785 --- /dev/null +++ b/3rdparty/fatfs-0.10b/doc/img/app2.c @@ -0,0 +1,70 @@ +/*------------------------------------------------------------/ +/ 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; + } +} + + + |