aboutsummaryrefslogtreecommitdiffstats
path: root/demos/modules/gfile/fatfs/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/modules/gfile/fatfs/main.c')
-rw-r--r--demos/modules/gfile/fatfs/main.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/demos/modules/gfile/fatfs/main.c b/demos/modules/gfile/fatfs/main.c
new file mode 100644
index 00000000..c5b43927
--- /dev/null
+++ b/demos/modules/gfile/fatfs/main.c
@@ -0,0 +1,60 @@
+#include "gfx.h"
+#include <string.h>
+
+/* Function to log messages to a file. */
+void LogInfo(const char* msg) {
+ GFILE* logFile;
+
+ logFile = gfileOpen("info.txt", "a"); // Open the file for append
+ if (logfile) {
+ gfileWrite(logFile, msg, strlen(msg));
+ gfileClose(logFile); // Close the file again
+ }
+}
+
+int main(void) {
+ GFILE* file; // GFILE variable to store file info.
+ const char msg[] = "Hello file!"; // String to write to a file.
+
+ /* Call the µGFX init routine. */
+ gfxInit();
+
+ /* Mount the file system. */
+ if (gfileMount('F', "/"))
+ gfxHalt("Can't mount the FAT file system");
+
+ /* Check if a file exists. */
+ if (gfileExists("file.txt"))
+ LogInfo("[Info]: File exists already!");
+ else
+ LogInfo("[Info]: The file does not exist yet!");
+
+ /* Write a string to the file. */
+ file = gfileOpen("file.txt", "wx");
+ if(!file) {
+ LogInfo("[Error]: Something went wrong opening the file.");
+ gfxHalt("Can't open the file file.txt");;
+ }
+
+ /* A normal write */
+ gfileWrite(file, msg, strlen(msg));
+
+ /* Write the file size in the file using the uGFX equivalent of fprintf(). */
+ fnprintg(file, 30, "The file is currently %dkB", gfileGetSize(file));
+
+ /* Close the file */
+ gfileClose(file);
+
+ /* Rename te file. */
+ gfileRename("file.txt", "renamedFile.txt");
+
+ /* Unmount the file system again */
+ gfileUnmount('F', "/");
+
+ /* This line should not work as the file system is now unmounted */
+ LogInfo("[Info]: Entering enldess while loop.");
+
+ /* The program ends here. */
+ while(1)
+ gfxSleepMilliseconds(200);
+}