aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/fatfs-0.10b/doc/img/app2.c
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-08-13 15:48:16 +1000
committerinmarket <andrewh@inmarket.com.au>2014-08-13 15:48:16 +1000
commitefa13a879df590ce0043a5b4f97597484bf264e1 (patch)
treedcded7e06aa5467496d4f9aa365e00fb096a6801 /3rdparty/fatfs-0.10b/doc/img/app2.c
parent10902154aec652a3fcdf028b2c6ff16743464973 (diff)
downloaduGFX-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.c70
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;
+ }
+}
+
+
+