Browse Source

mfm_dup.cpp

mfm
Antonio SJ Musumeci 2 months ago
parent
commit
7126108e4d
  1. 21
      src/mfm_dup.cpp

21
src/mfm_dup.cpp

@ -8,7 +8,6 @@
#include <filesystem> #include <filesystem>
namespace stdfs = std::filesystem; namespace stdfs = std::filesystem;
namespace mfm namespace mfm
@ -26,32 +25,32 @@ mfm::dup(const Opts::Dup &opts_)
for(const auto &srcpath : srcpaths) for(const auto &srcpath : srcpaths)
{ {
if(fs::is_regular_file(srcpath))
if(stdfs::is_regular_file(srcpath))
{ {
} }
else if(fs::is_directory(srcpath))
else if(stdfs::is_directory(srcpath))
{ {
auto dir_opts = (fs::directory_options::follow_directory_symlink |
fs::directory_options::skip_permission_denied);
auto dir_opts = (stdfs::directory_options::follow_directory_symlink |
stdfs::directory_options::skip_permission_denied);
for(const fs::directory_entry &de :
fs::recursive_directory_iterator(srcpath,dir_opts))
for(const stdfs::directory_entry &de :
stdfs::recursive_directory_iterator(srcpath,dir_opts))
{ {
if(!str::startswith(de.path().filename().string(),".dup_")) if(!str::startswith(de.path().filename().string(),".dup_"))
continue; continue;
for(const auto &de : for(const auto &de :
fs::directory_iterator(de.path().parent_path()))
stdfs::directory_iterator(de.path().parent_path()))
{ {
auto relpath = fs::relative(de.path(),srcpath);
auto relpath = stdfs::relative(de.path(),srcpath);
for(const auto &dstpath : srcpaths) for(const auto &dstpath : srcpaths)
{ {
if(dstpath == srcpath) if(dstpath == srcpath)
continue; continue;
fs::path srcbasepath;
fs::path dstbasepath;
stdfs::path srcbasepath;
stdfs::path dstbasepath;
srcbasepath = srcpath / relpath.parent_path(); srcbasepath = srcpath / relpath.parent_path();
dstbasepath = dstpath / relpath.parent_path(); dstbasepath = dstpath / relpath.parent_path();

Loading…
Cancel
Save