src: use FilePath in FileSystem::getFileNamesFromDirectory
This commit is contained in:
@@ -5,11 +5,11 @@
|
||||
#include "boost/date_time.hpp"
|
||||
#include "boost/filesystem.hpp"
|
||||
|
||||
std::vector<std::string> FileSystem::getFileNamesFromDirectory(
|
||||
std::vector<FilePath> FileSystem::getFilePathsFromDirectory(
|
||||
const FilePath& path, const std::vector<std::string>& extensions
|
||||
){
|
||||
std::set<std::string> ext(extensions.begin(), extensions.end());
|
||||
std::vector<std::string> files;
|
||||
std::vector<FilePath> files;
|
||||
|
||||
if (boost::filesystem::is_directory(path.path()))
|
||||
{
|
||||
@@ -30,7 +30,7 @@ std::vector<std::string> FileSystem::getFileNamesFromDirectory(
|
||||
|
||||
if (boost::filesystem::is_regular_file(*it) && ext.find(it->path().extension().string()) != ext.end())
|
||||
{
|
||||
files.push_back(it->path().generic_string());
|
||||
files.push_back(FilePath(it->path().generic_string()));
|
||||
}
|
||||
++it;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
class FileSystem
|
||||
{
|
||||
public:
|
||||
static std::vector<std::string> getFileNamesFromDirectory(
|
||||
static std::vector<FilePath> getFilePathsFromDirectory(
|
||||
const FilePath& path, const std::vector<std::string>& extensions);
|
||||
|
||||
static FileInfo getFileInfoForPath(const FilePath& filePath);
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
#include <algorithm>
|
||||
#include <cstdarg>
|
||||
#include <deque>
|
||||
#include <functional>
|
||||
#include <set>
|
||||
#include <time.h>
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
|
||||
#include "boost/date_time/posix_time/posix_time.hpp"
|
||||
@@ -58,6 +60,9 @@ namespace utility
|
||||
template<typename T, typename... Args>
|
||||
std::vector<T> createVectorFromElements(const Args&... args);
|
||||
|
||||
template<typename SourceType, typename TargetType>
|
||||
std::vector<TargetType> convert(const std::vector<SourceType>& sourceContainer, std::function<TargetType(const SourceType&)> conversion);
|
||||
|
||||
template<typename T>
|
||||
std::vector<std::string> toStrings(const std::vector<T>& d);
|
||||
template<>
|
||||
@@ -198,6 +203,17 @@ std::vector<T> utility::createVectorFromElements(const Args&... args)
|
||||
return v;
|
||||
}
|
||||
|
||||
template<typename SourceType, typename TargetType>
|
||||
std::vector<TargetType> utility::convert(const std::vector<SourceType>& sourceContainer, std::function<TargetType(const SourceType&)> conversion)
|
||||
{
|
||||
std::vector<TargetType> targetContainer;
|
||||
for (const SourceType& sourceElement: sourceContainer)
|
||||
{
|
||||
targetContainer.push_back(conversion(sourceElement));
|
||||
}
|
||||
return targetContainer;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
std::vector<std::string> utility::toStrings(const std::vector<T>& d)
|
||||
{
|
||||
|
||||
@@ -40,13 +40,13 @@ namespace utility
|
||||
{
|
||||
std::vector<std::string> extensions;
|
||||
extensions.push_back(extension);
|
||||
std::vector<std::string> fontFileNames = FileSystem::getFileNamesFromDirectory(path, extensions);
|
||||
std::vector<FilePath> fontFilePaths = FileSystem::getFilePathsFromDirectory(path, extensions);
|
||||
|
||||
std::set<int> loadedFontIds;
|
||||
|
||||
for (const std::string& fontFileName: fontFileNames)
|
||||
for (const FilePath& fontFilePath: fontFilePaths)
|
||||
{
|
||||
QFile file(fontFileName.c_str());
|
||||
QFile file(fontFilePath.str().c_str());
|
||||
if (file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
int id = QFontDatabase::addApplicationFontFromData(file.readAll());
|
||||
|
||||
@@ -16,12 +16,7 @@ QtProjectWizzardContentPreferences::QtProjectWizzardContentPreferences(
|
||||
, m_oldColorSchemeIndex(-1)
|
||||
, m_newColorSchemeIndex(-1)
|
||||
{
|
||||
std::vector<std::string> colorSchemePaths =
|
||||
FileSystem::getFileNamesFromDirectory(ResourcePaths::getColorSchemesPath(), std::vector<std::string>(1, ".xml"));
|
||||
for (const std::string& colorScheme : colorSchemePaths)
|
||||
{
|
||||
m_colorSchemePaths.push_back(FilePath(colorScheme));
|
||||
}
|
||||
m_colorSchemePaths = FileSystem::getFilePathsFromDirectory(ResourcePaths::getColorSchemesPath(), std::vector<std::string>(1, ".xml"));
|
||||
}
|
||||
|
||||
QtProjectWizzardContentPreferences::~QtProjectWizzardContentPreferences()
|
||||
|
||||
@@ -187,14 +187,13 @@ std::vector<FilePath> SourceGroupJava::getClassPath()
|
||||
|
||||
if (m_settings->getAbsoluteMavenDependenciesDirectory().exists())
|
||||
{
|
||||
const std::vector<std::string> dependencies = FileSystem::getFileNamesFromDirectory(
|
||||
m_settings->getAbsoluteMavenDependenciesDirectory(),
|
||||
utility::createVectorFromElements<std::string>(".jar")
|
||||
utility::append(
|
||||
classPath,
|
||||
FileSystem::getFilePathsFromDirectory(
|
||||
m_settings->getAbsoluteMavenDependenciesDirectory(),
|
||||
utility::createVectorFromElements<std::string>(".jar")
|
||||
)
|
||||
);
|
||||
for (const std::string& dependency: dependencies)
|
||||
{
|
||||
classPath.push_back(FilePath(dependency));
|
||||
}
|
||||
}
|
||||
|
||||
for (FilePath rootDirectory: fetchRootDirectories())
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "utility/file/FileSystem.h"
|
||||
|
||||
class FileSystemTestSuite : public CxxTest::TestSuite
|
||||
class FileSystemTestSuite: public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
void test_find_cpp_files()
|
||||
@@ -15,8 +15,10 @@ public:
|
||||
std::vector<std::string> extensions;
|
||||
extensions.push_back(".cpp");
|
||||
|
||||
std::vector<std::string> cppFiles =
|
||||
FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions);
|
||||
std::vector<std::string> cppFiles = utility::convert<FilePath, std::string>(
|
||||
FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions),
|
||||
[](const FilePath& filePath){ return filePath.str(); }
|
||||
);
|
||||
|
||||
TS_ASSERT_EQUALS(cppFiles.size(), 4);
|
||||
TS_ASSERT(isInVector(cppFiles, "data/FileSystemTestSuite/main.cpp"));
|
||||
@@ -30,8 +32,10 @@ public:
|
||||
std::vector<std::string> extensions;
|
||||
extensions.push_back(".h");
|
||||
|
||||
std::vector<std::string> headerFiles =
|
||||
FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions);
|
||||
std::vector<std::string> headerFiles = utility::convert<FilePath, std::string>(
|
||||
FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions),
|
||||
[](const FilePath& filePath){ return filePath.str(); }
|
||||
);
|
||||
|
||||
TS_ASSERT_EQUALS(headerFiles.size(), 3);
|
||||
TS_ASSERT(isInVector(headerFiles, "data/FileSystemTestSuite/tictactoe.h"));
|
||||
@@ -46,8 +50,10 @@ public:
|
||||
extensions.push_back(".hpp");
|
||||
extensions.push_back(".cpp");
|
||||
|
||||
std::vector<std::string> sourceFiles =
|
||||
FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions);
|
||||
std::vector<std::string> sourceFiles = utility::convert<FilePath, std::string>(
|
||||
FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions),
|
||||
[](const FilePath& filePath){ return filePath.str(); }
|
||||
);
|
||||
|
||||
TS_ASSERT_EQUALS(sourceFiles.size(), 8);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user