Boost.org filesystem module
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Andrey Semashev d508d4950f Add dir_entry::refresh and file type observers. Use them in recursive dir_it.
This commit changes behavior of directory_entry constructors and modifiers
that change the stored path in v4: the methods will now automatically query
the filesystem for the file status instead of leaving the cached data
default-initialized. This means that the paths passed to directory_entry
must be valid, otherwise an error will be returned. Filesystem querying
is implemented in the new directory_entry::refresh methods.

The constructors and modifiers that accepted file_status arguments are
now removed in v4. The cached file statuses are an implementation detail,
and eventually we may want to add more cached data, as we add more observers
to directory_entry.

Also added a few file type observers to directory_entry. These observers
allow to avoid querying the filesystem if the full file status is not cached
but the file type is (i.e. when permissions are not cached). This is the case
with readdir-based implementation of directory_iterator, if the underlying
C library supports dirent::d_type field.

recursive_directory_iterator has been updated to use the added file type
observers instead of querying the full status. This may improve performance
of directory iteration.

Closes https://github.com/boostorg/filesystem/issues/288.
6 days ago
.github/workflows Added clang-16 CI jobs, switch to clang-15 from stock Ubuntu repos. 7 days ago
bug Reformatted code for more consistent look and better readability. 2 years ago
build Use configure-time check to detect dirent::d_type field support. 7 days ago
cmake Extracted Boost library include paths collection to a CMake module. 1 year ago
config Use configure-time check to detect dirent::d_type field support. 7 days ago
doc Add dir_entry::refresh and file type observers. Use them in recursive dir_it. 6 days ago
example Added simple_ls to examples Jamfile. 4 months ago
include/boost Add dir_entry::refresh and file type observers. Use them in recursive dir_it. 6 days ago
meta Update maintainer list 2 years ago
src Add dir_entry::refresh and file type observers. Use them in recursive dir_it. 6 days ago
test Add dir_entry::refresh and file type observers. Use them in recursive dir_it. 6 days ago
.gitattributes initial commit - review comments not yet applied 21 years ago
.gitignore Initial commit. 9 years ago
CMakeLists.txt Use configure-time check to detect dirent::d_type field support. 7 days ago
README.md Updated link to AppVeyor badge. 2 years ago
appveyor.yml Added VS2022 job and C++20 and C++latest jobs to AppVeyor CI. 1 year ago
index.html Filesystem - Delete v3 directories no longer needed. Cleanup links, namespaces, and other residue from dual v2/v3 support. 11 years ago

README.md

Boost.Filesystem

Boost.Filesystem, part of collection of the Boost C++ Libraries, provides facilities to manipulate files and directories, and the paths that identify them.

Directories

  • doc - Documentation sources
  • include - Interface headers of Boost.Filesystem
  • src - Compilable source files of Boost.Filesystem
  • test - Boost.Filesystem unit tests
  • example - Boost.Filesystem usage examples

More information

Build status

Branch GitHub Actions AppVeyor Test Matrix Dependencies
master GitHub Actions AppVeyor Tests Dependencies
develop GitHub Actions AppVeyor Tests Dependencies

License

Distributed under the Boost Software License, Version 1.0.