Назад | Перейти на главную страницу

Можно ли изменить дату / время символической ссылки в Windows?

Мы заархивировали старые (более двух лет) файлы на нашем файловом сервере, используя FSRM, в другой каталог, переместив и заменив файлы символическими ссылками - проблема в том, что символические ссылки содержат дату запуска скрипта - ничего не поделаешь. с исходной датой подачи. Пользователи недовольны тем, что половина их файлов имеет одинаковую дату - можно ли изменить дату символических ссылок, чтобы она была такой же, как у исходных файлов, или воссоздать их с нуля с правильной датой? Кто-нибудь сталкивался с этой проблемой при архивировании с помощью FSRM?

Вроде бы возможно, но далеко не просто. Соберитесь ... Я не знаю никакой утилиты, которая бы это сделала, но кто-то набрал код, который, похоже, работает.


DWORD SetSymLinkTimesW(const wchar_t *filename, const FILETIME *ftc,
const FILETIME *fta, const FILETIME *ftw)
{
   DWORD            ret;
   HANDLE           h;

   h = CreateFileW(filename, GENERIC_READ | GENERIC_WRITE,
                               FILE_SHARE_READ | FILE_SHARE_WRITE,
                               NULL, OPEN_EXISTING,
                               FILE_FLAG_OPEN_REPARSE_POINT, NULL);
  if(h != INVALID_HANDLE_VALUE)
  {
     if(SetFileTime(h, ftc, fta, ftw) == TRUE)
    {
     CloseHandle(h);
     ret = NO_ERROR;
    }
    else
    {
      ret = GetLastError();
      CloseHandle(h);
    }
  }
  else
   ret = GetLastError();
  return ret;
} 

I've just copied and pasted your code into a console application and
it successfully changes the timestamps of a symlink for me (Win8.1
32-bit).

int _tmain(int argc, _TCHAR* argv[])
{
        FILETIME ft;

        GetSystemTimeAsFileTime( &ft );
        SetSymLinkTimesW( argv[1], &ft, &ft, &ft );
        return 0;
} 

DirDate v6.3 теперь реализует это - http://www.datamystic.com/dirdate2.exe

Измените дату и время символических ссылок (символических ссылок), также известных как точки повторной обработки файлов.