You can use [winim](https://github.com/khchen/winim) and
[winstr](https://khchen.github.io/winim/winstr.html) .
Example:
import winim/lean
var ffd: WIN32_FIND_DATA
var hFind = FindFirstFile("*.*", ffd)
if hFind != INVALID_HANDLE_VALUE:
defer:
FindClose(hFind)
while true:
block method1:
var buffer = T(MAX_PATH)
# buffer maybe wstring or mstring depends on -d:useWinAnsi
buffer << ffd.cFileName
# copy cFileName to buffer
buffer.nullTerminate
# set corrent length of buffer
echo buffer
block method2:
echo (%$ffd.cFileName).nullTerminated
# `$` for array cause ambiguous call since 0.2.0, use %$ instead
if FindNextFile(hFind, &ffd) == 0: break
Run