diff --git a/gtk4/file.c b/gtk4/file.c
new file mode 100644
index 0000000..273b429
--- /dev/null
+++ b/gtk4/file.c
@@ -0,0 +1,23 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+#include "file.h"
+
+GFile ** kc3_gtk4_file_new_for_uri (GFile **dest,
+ const s_str *uri)
+{
+ GFile *tmp;
+ if (! (tmp = g_file_new_for_uri(uri->ptr.pchar)))
+ return NULL;
+ *dest = tmp;
+ return dest;
+}
diff --git a/gtk4/file.h b/gtk4/file.h
new file mode 100644
index 0000000..3a79f0d
--- /dev/null
+++ b/gtk4/file.h
@@ -0,0 +1,24 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+#ifndef KC3_GTK4_FILE_H
+#define KC3_GTK4_FILE_H
+
+#include "types.h"
+
+/* Heap-allocation functions. */
+GFile ** kc3_gtk4_file_new_for_uri (GFile **dest,
+ const s_str *uri);
+
+/* Operators. */
+
+#endif /* KC3_GTK4_FILE_H */
diff --git a/lib/kc3/0.1/gtk4/file.kc3 b/lib/kc3/0.1/gtk4/file.kc3
new file mode 100644
index 0000000..022e486
--- /dev/null
+++ b/lib/kc3/0.1/gtk4/file.kc3
@@ -0,0 +1,5 @@
+defmodule Gtk4.File do
+
+ def new_for_uri = cfn Ptr "kc3_gtk4_file_new_for_uri" (Result, Str)
+
+end