Skip to content

Commit

Permalink
[New+]Update last modified date to now for all templates created (#36133
Browse files Browse the repository at this point in the history
)

* Update last modified date to now for all templates created

* Now also set last update for directories. Thank you htcfreek!
  • Loading branch information
cgaarden authored Jan 21, 2025
1 parent eeb72b9 commit b100d8b
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/modules/NewPlus/NewShellExtensionContextMenu/new_utilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,21 @@ namespace newplus::utilities
}
}

inline void update_last_write_time(const std::filesystem::path path)
{
const std::filesystem::file_time_type now = std::filesystem::file_time_type::clock::now();

std::filesystem::last_write_time(path, now);

if (std::filesystem::is_directory(path))
{
for (const auto& entry : std::filesystem::recursive_directory_iterator(path))
{
std::filesystem::last_write_time(entry.path(), now);
}
}
}

inline HRESULT copy_template(const template_item* template_entry, const ComPtr<IUnknown> site_of_folder)
{
HRESULT hr = S_OK;
Expand Down Expand Up @@ -376,6 +391,9 @@ namespace newplus::utilities
// Copy file and determine final filename
std::filesystem::path target_final_fullpath = template_entry->copy_object_to(GetActiveWindow(), target_fullpath);

// Touch all files and set last modified to "now"
update_last_write_time(target_final_fullpath);

// Consider copy completed. If we do tracing after enter_rename_mode, then rename mode won't consistently work
trace.UpdateState(true);
Trace::EventCopyTemplate(target_final_fullpath.extension().c_str());
Expand Down

0 comments on commit b100d8b

Please sign in to comment.