É possível alterar a data / hora de um symlink no Windows?

3

Arquivamos arquivos antigos (com mais de dois anos de idade) em nosso servidor de arquivos usando o FSRM para um diretório diferente, movendo e substituindo os arquivos por links simbólicos - o problema é que os links simbólicos têm como data de lançamento o script. nada a ver com o arquivamento original. Os usuários não gostam que metade dos seus arquivos tenham a mesma data - é possível modificar a data dos links simbólicos para o mesmo dos arquivos originais ou recriá-los do zero com a data correta? Alguém encontrou esse problema ao arquivar com o FSRM?

    
por opg 22.07.2014 / 10:04

2 respostas

1

Parece que é possível, mas longe de ser fácil. Prepare-se ... Eu não conheço nenhum utilitário que faça isso, mas alguém digitou algum código que parece funcionar .

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;
} 
por 28.07.2014 / 15:19
-1

DirDate v6.3 agora implementa isso - link

Altere a data e a hora dos links simbólicos (links simbólicos), também conhecidos como pontos de nova análise do arquivo.

    
por 21.08.2014 / 15:11