# GSoC '25: stdlib filesystem

**URL:** <https://fortran-lang.discourse.group/t/gsoc-25-stdlib-filesystem/9798>\
**Category:** GSoC-2025\
**Created:** [May 26, 2025, 5:02pm UTC](https://fortran-lang.discourse.group/t/gsoc-25-stdlib-filesystem/9798 "2025-05-26T17:02:23Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![davidpfister](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/davidpfister/32/3949_2.png) [@davidpfister](https://fortran-lang.discourse.group/u/davidpfister)\
**Post date:** [May 28, 2025, 7:05am UTC](https://fortran-lang.discourse.group/t/gsoc-25-stdlib-filesystem/9798/4 "2025-05-28T07:05:07Z")

</div>

If you plan to include support for files and directories you may also want to have a look at what @interkosmos did with [fortran-unix](https://github.com/interkosmos/fortran-unix/) and in particular the binding to [dirent](https://github.com/interkosmos/fortran-unix/blob/master/src/unix_dirent.F90).

It is not portable to Windows but you can make it so with that [dirent.h](https://github.com/tronkko/dirent/blob/master/include/dirent.h) header.

Just some food for thoughts for your `path` functionality. When working with [Nuke](https://github.com/nuke-build/nuke) (in C#) I came across their [AbsolutePath](https://github.com/nuke-build/nuke/blob/develop/source/Nuke.Utilities/IO/AbsolutePath.cs) (resp. RelativePath) object which I found very convenient. In brief, it overloads the `/` operator so that you can build paths in a very visual way (e.g. `newpath = root / folder / filename`) and the operator takes care of choosing `/` or `\` depending on the os and does the proper file concatenation.

---

_[View the full topic](https://fortran-lang.discourse.group/t/gsoc-25-stdlib-filesystem/9798)._
