Add wxDIR_NO_FOLLOW flag for wxDir iteration.

This flag allows to avoid following the symbolic links during the directory
traversal. In particular, this means that links to the directories
(potentially outside the directory being traversed) are not considered as
directories at all when it is used, potentially avoiding surprises.

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-10-23 23:57:32 +00:00
parent 6bf11d6720
commit c55f46d0a1
4 changed files with 36 additions and 9 deletions

View File

@@ -94,8 +94,8 @@ public:
/**
These flags define what kind of filenames are included in the list of files
enumerated by wxDir::GetFirst() and wxDir::GetNext().
These flags affect the behaviour of GetFirst/GetNext() and Traverse(),
determining what types are included in the list of items they produce.
*/
enum wxDirFlags
{
@@ -104,8 +104,28 @@ enum wxDirFlags
wxDIR_HIDDEN = 0x0004, ///< Includes hidden files.
wxDIR_DOTDOT = 0x0008, ///< Includes "." and "..".
//! Combination of the @c wxDIR_FILES, @c wxDIR_DIRS, @c wxDIR_HIDDEN flags
//! defined above.
/**
Don't follow symbolic links during the directory traversal.
This flag is ignored under systems not supporting symbolic links (i.e.
non-Unix ones).
Notice that this flag is @e not included in wxDIR_DEFAULT and so the
default behaviour of wxDir::Traverse() is to follow symbolic links,
even if they lead outside of the directory being traversed.
@since 2.9.5
*/
wxDIR_NO_FOLLOW = 0x0010,
/**
Default directory traversal flags include both files and directories,
even hidden.
Notice that by default wxDIR_NO_FOLLOW is @e not included, meaning that
symbolic links are followed by default. If this is not desired, you
must pass that flag explicitly.
*/
wxDIR_DEFAULT = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN
};