+
+/**
+ * @brief Fill in dirItems with the files from a folder and its subfolders
+ *
+ * @note Duplication from 7zip source (EnumDirItems.cpp), because the function is static
+ */
+using namespace NFile;
+using namespace NName;
+static void EnumerateDirectory(
+ const UString &baseFolderPrefix,
+ const UString &directory,
+ const UString &prefix,
+ CObjectVector<CDirItem> &dirItems)
+{
+ NFind::CEnumeratorW enumerator(baseFolderPrefix + directory + wchar_t(kAnyStringWildcard));
+ NFind::CFileInfoW fileInfo;
+ while (enumerator.Next(fileInfo))
+ {
+ AddDirFileInfo(prefix, directory + fileInfo.Name, fileInfo, dirItems);
+ if (fileInfo.IsDirectory())
+ {
+ EnumerateDirectory(baseFolderPrefix, directory + fileInfo.Name + wchar_t(kDirDelimiter),
+ prefix + fileInfo.Name + wchar_t(kDirDelimiter), dirItems);
+ }
+ }
+}
+