Page 1 of 1

[WCX] Call ProcessFileW also for directories

Posted: 2019-11-05, 13:13 UTC
by remittor
Now TotalCmd itself creates directories and set Modified Time.

But in my WCX-plugin I want to set other times for directories (ctime and atime).

Re: [WCX] Call ProcessFileW also for directories

Posted: 2019-11-06, 07:56 UTC
by remittor
Approximate algorithm:

Code: Select all

struct wcx_cache_item * file_item;
tHeaderDataEx  headerData;

while(wcx->ReadHeaderEx(wcx->hArcData, &headerData) != E_END_ARCHIVE) {
  file_item = wcx->cache->find_by_name(headerData.FileName);
  if (!file_item)
    continue;
  DestName = create_dest_name(DestPath, headerData.FileName);
  if (file_item->is_dir()) {
    CreateDirectoryW(DestName);
    /*wcx->ProcessFileW(wcx->hArcData, PK_SKIP, NULL, NULL);*/   // current version
    wcx->ProcessFileW(wcx->hArcData, PK_EXTRACT, NULL, DestName);   // proposed version
  } else {
    wcx->ProcessFileW(wcx->hArcData, PK_EXTRACT, NULL, DestName);
  }
}

Re: [WCX] Hack ProcessFileW for directories

Posted: 2019-11-25, 12:07 UTC
by remittor
I made a workaround to solve this problem:

GitHub project PAXZ.WCX

This hack works stably!