FileLister: Fix bug that prevent a file passed by with paths to be checked; Add the possibility to use \ as a directory separator on Windows closing issue #22
This commit is contained in:
parent
3cb51d6946
commit
45478a7178
|
@ -156,19 +156,27 @@ void FileLister::RecursiveAddFiles(std::vector<std::string> &filenames, const st
|
||||||
void FileLister::RecursiveAddFiles(std::vector<std::string> &filenames, const std::string &path, bool recursive)
|
void FileLister::RecursiveAddFiles(std::vector<std::string> &filenames, const std::string &path, bool recursive)
|
||||||
{
|
{
|
||||||
std::ostringstream bdir, oss;
|
std::ostringstream bdir, oss;
|
||||||
oss << path;
|
std::string cleanedPath = path;
|
||||||
if (path.length() > 0)
|
|
||||||
|
std::replace(cleanedPath.begin(), cleanedPath.end(), '\\', '/');
|
||||||
|
oss << cleanedPath;
|
||||||
|
|
||||||
|
if (cleanedPath.length() > 0)
|
||||||
{
|
{
|
||||||
// Windows doesn't recognize "." as current folder by default
|
// Windows doesn't recognize "." as current folder by default
|
||||||
if (path == ".")
|
if (cleanedPath == ".")
|
||||||
{
|
{
|
||||||
oss << "/*";
|
oss << "/*";
|
||||||
}
|
}
|
||||||
else if (path[path.length() - 1] == '/')
|
else if (cleanedPath[cleanedPath.length() - 1] == '/')
|
||||||
{
|
{
|
||||||
bdir << path;
|
bdir << cleanedPath;
|
||||||
oss << "*";
|
oss << "*";
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bdir << cleanedPath.substr(0, cleanedPath.rfind('/') + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WIN32_FIND_DATA ffd;
|
WIN32_FIND_DATA ffd;
|
||||||
|
|
Loading…
Reference in New Issue