loading file content, skipping directories
This commit is contained in:
parent
66fd83ac02
commit
3d63ff29a7
@ -1,6 +1,7 @@
|
|||||||
add_executable(kc
|
add_executable(kc
|
||||||
main.cpp
|
main.cpp
|
||||||
fs/fs.cpp
|
fs/fs.cpp
|
||||||
|
fs/FileEntry.cpp
|
||||||
logging.cpp
|
logging.cpp
|
||||||
config.cpp
|
config.cpp
|
||||||
)
|
)
|
||||||
|
32
src/fs/FileEntry.cpp
Normal file
32
src/fs/FileEntry.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#include "FileEntry.hpp"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
namespace kc {
|
||||||
|
|
||||||
|
bool FileEntry::content_loaded()
|
||||||
|
{
|
||||||
|
return !file_content.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string FileEntry::load_content()
|
||||||
|
{
|
||||||
|
std::ifstream ifs(file_entry.path());
|
||||||
|
file_content.assign( (std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()) );
|
||||||
|
|
||||||
|
return file_content;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string FileEntry::get_content()
|
||||||
|
{
|
||||||
|
return file_content;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileEntry::clear_content()
|
||||||
|
{
|
||||||
|
file_content.clear();
|
||||||
|
file_content.shrink_to_fit();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -12,7 +12,14 @@ class FileEntry {
|
|||||||
fs::directory_entry file_entry;
|
fs::directory_entry file_entry;
|
||||||
fs::path relative_path;
|
fs::path relative_path;
|
||||||
|
|
||||||
|
bool content_loaded();
|
||||||
|
std::string load_content();
|
||||||
|
std::string get_content();
|
||||||
|
void clear_content();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
std::string file_content;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
@ -12,6 +12,8 @@ std::vector<kc::FileEntry> kc::walk_dir(std::string dir)
|
|||||||
|
|
||||||
for (auto const& dir_entry : fs::recursive_directory_iterator(base_path))
|
for (auto const& dir_entry : fs::recursive_directory_iterator(base_path))
|
||||||
{
|
{
|
||||||
|
if (dir_entry.is_directory()) continue;
|
||||||
|
|
||||||
auto excluded = false;
|
auto excluded = false;
|
||||||
auto dir_entry_path = dir_entry.path();
|
auto dir_entry_path = dir_entry.path();
|
||||||
auto dir_entry_path_string = dir_entry_path.string();
|
auto dir_entry_path_string = dir_entry_path.string();
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "FileEntry.hpp"
|
#include "FileEntry.hpp"
|
||||||
|
|
||||||
|
@ -25,6 +25,6 @@ int main(int argc, const char *argv[]) {
|
|||||||
auto env_path = (*config)["path"].as<std::string>();
|
auto env_path = (*config)["path"].as<std::string>();
|
||||||
BOOST_LOG_TRIVIAL(info) << "Loading knowledge base from " << env_path;
|
BOOST_LOG_TRIVIAL(info) << "Loading knowledge base from " << env_path;
|
||||||
|
|
||||||
kc::walk_dir(env_path);
|
auto entries = kc::walk_dir(env_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user