Index: uspace/srv/fs/exfat/exfat_directory.c
===================================================================
--- uspace/srv/fs/exfat/exfat_directory.c	(revision 944aa2452732aa3109722cbb00cb6083ba5a3f28)
+++ uspace/srv/fs/exfat/exfat_directory.c	(revision 27678a0727230dd505a3df5868df71c026ecf8ea)
@@ -157,4 +157,25 @@
 }
 
+int exfat_directory_find(exfat_directory_t *di, exfat_dentry_clsf_t type, exfat_dentry_t **d)
+{
+	do {
+		if (exfat_directory_get(di, d) == EOK) {
+			if (exfat_classify_dentry(*d) == type)
+				return EOK;
+		} else
+			return ENOENT;
+	} while (exfat_directory_next(di) == EOK);
+	
+	return ENOENT;
+}
+
+int exfat_directory_find_continue(exfat_directory_t *di, exfat_dentry_clsf_t type, exfat_dentry_t **d)
+{
+	int rc;
+	rc = exfat_directory_next(di);
+	if (rc != EOK)
+		return rc;
+	return exfat_directory_find(di, type, d);
+}
 
 /**
Index: uspace/srv/fs/exfat/exfat_directory.h
===================================================================
--- uspace/srv/fs/exfat/exfat_directory.h	(revision 944aa2452732aa3109722cbb00cb6083ba5a3f28)
+++ uspace/srv/fs/exfat/exfat_directory.h	(revision 27678a0727230dd505a3df5868df71c026ecf8ea)
@@ -58,4 +58,8 @@
 extern int exfat_directory_seek(exfat_directory_t *di, aoff64_t pos);
 extern int exfat_directory_get(exfat_directory_t *di, exfat_dentry_t **de);
+extern int exfat_directory_find(exfat_directory_t *di, 
+    exfat_dentry_clsf_t type, exfat_dentry_t **d);
+extern int exfat_directory_find_continue(exfat_directory_t *di, 
+    exfat_dentry_clsf_t type, exfat_dentry_t **d);
 
 extern int exfat_directory_expand(exfat_directory_t *di);
