sitemap.xml creation code
#include <iostream>
#include <filesystem>
#include <algorithm>
#include <string>
#include <cstdio>
#include <ctime>
using std::filesystem::path,
std::filesystem::directory_iterator,
std::filesystem::directory_entry,
std::basic_string,
std::for_each,
std::difftime,
std::mktime,
std::tm,
std::time,
std::time_t,
std::cerr,
std::FILE,
std::fopen,
std::fclose,
std::fwrite,
std::fread;
void directorystuff(basic_string s, FILE* f, int pos){
directory_iterator di (s);
while(di != end(di)){
if((*di).is_directory()){
basic_string<char> temp(s);
temp += (*di).path().filename();
temp += "/";
directorystuff(temp, f, pos);
}else{
path p((*di).path(), path::generic_format);
if(p.extension().string().compare(".html") == 0){
basic_string<char> format("\t\n\t\thttps://cppexamples.com%s\n\t\t%i-%i-%i\n\t\tnever\n\t\t0.5\n\t\n");
time_t tt = time(nullptr);
tm* t = localtime(&tt);
fprintf(f, format.data(), (*di).path().string().substr(pos, (*di).path().string().length() - pos).data(), t->tm_year + 1900, t->tm_mon + 1, t->tm_mday);
}
}
++di;
}
}
int main(){
basic_string str("testdirectory");//working directory?
//if the directory doesn't end with a '/' add one
if(str.at(str.length() - 1) != '/'){
str += "/";
}
path p(str);
basic_string<char> temp(p);
temp += "sitemap.xml";
basic_string<char>::size_type pos = str.find_last_of("/");
FILE* f = fopen( temp.data(), "w+");
basic_string s("\n\n");
fwrite(s.data(), sizeof(char), s.size(), f);
directorystuff(p, f, pos);
basic_string<char> t("");
fwrite(t.data(), sizeof(char), t.size(), f);
fclose(f);
return 0;
}
C++ Examples© 2024 TBD