2#ifndef __ASE_CRAWLER_HH__
3#define __ASE_CRAWLER_HH__
12 const uint constraindir_ : 1;
14 const uint constrainfile_ : 1;
15 FileCrawler (
const String &cwd,
bool constraindir =
false,
bool constrainfile =
false);
19 void set_folder (
const Resource &newfolder)
override;
21 void set_entries (
const ResourceS &newentries)
override;
27 bool existingfile)
override {
return assign_ (utf8path, existingfile,
true); }
Class implementing a file system crawler.
String canonify_fspath(const String &fspath, const String &fsfragment, bool constraindir, bool constrainfile)
Canonify a path (file system encoding), optionally constraining it to a directory or file.
ResourceS list_entries()
List all entries in the current folder.
String2 assign(const String &utf8path, bool existingfile) override
String expand_fsdir(const String &fsdir)
Expand directory name (file system encoding) to absolute folder path.
Resource current_folder()
Return the current folder.
Resource get_folder() const override
Describe current folder.
String2 assign_(const String &utf8path, bool existingfile, bool notify=true)
Open a new folder and make it the current folder.
ResourceS get_entries() const override
List entries of a folder.
Resource canonify(const String &utf8cwd, const String &utf8fragment, bool constraindir, bool constrainfile) override
Canonify a UTF-8 path name, optionally constraining it to a folder or file.
Implementation type for classes with Property interfaces.
Helper to crawl hierarchical resources.
#define ASE_DEFINE_MAKE_SHARED(CLASS)
The Anklang C++ API namespace.
uint32_t uint
Provide 'uint' as convenience type.
Description of a resource, possibly nested.