diff --git a/espfs/espfs.c b/espfs/espfs.c
index a08c113..b14a589 100644
--- a/espfs/espfs.c
+++ b/espfs/espfs.c
@@ -112,6 +112,17 @@ void ICACHE_FLASH_ATTR memcpyAligned(char *dst, char *src, int len) {
 #define memcpyAligned memcpy
 #endif
 
+// Returns flags of opened file.
+int ICACHE_FLASH_ATTR espFsFlags(EspFsFile *fh) {
+	if (fh == NULL) {
+		os_printf("File handle not ready\n");
+		return -1;
+	}
+
+	int8_t flags;
+	memcpyAligned((char*)&flags, (char*)&fh->header->flags, 1);
+	return (int)flags;
+}
 
 //Open a file and return a pointer to the file desc struct.
 EspFsFile ICACHE_FLASH_ATTR *espFsOpen(char *fileName) {
diff --git a/espfs/espfs.h b/espfs/espfs.h
index a147fac..c41df0a 100644
--- a/espfs/espfs.h
+++ b/espfs/espfs.h
@@ -15,6 +15,7 @@ typedef struct EspFsFile EspFsFile;
 
 EspFsInitResult espFsInit(void *flashAddress);
 EspFsFile *espFsOpen(char *fileName);
+int espFsFlags(EspFsFile *fh);
 int espFsRead(EspFsFile *fh, char *buff, int len);
 void espFsClose(EspFsFile *fh);