feat(filepicker): add support for abstracted filesystem io/fs.FS #759
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add an optional
io/fs.FS
tofilepicker
's model to allow to browse an abstracted filesystem as an alternative to the full filesystem exposed by theos
package.The filepicker API is extended (and generalized thanks to io/fs.FS), without any breaking change.
This allows for example to browse limited a subdirectory by using
os.Root
(go1.24+):Note that Go 1.25 will add
io/fs.ReadLink
, but we can't use it yet. So we implement symlink resolution here.By the way, references to
os
types and constants which are aliases to same symbols inio/fs
are replaced:os.Mode
*,os.DirEntry
.Example
See package github.com/dolmen-go/iofs-shell.
Runnable example: