A alteração do atributo de um arquivo também altera seus timestamps?

1

No Windows 8.0, parece que quando altero o atributo de um arquivo (por exemplo, H e R), os registros de data e hora (Criado, Modificado, Acessado) permanecem os mesmos.

Os atributos de arquivo são, de fato, armazenados no sistema de arquivos NTFS, e não no próprio arquivo? Os carimbos de hora não devem mudar se você estiver alterando os atributos de um arquivo? Isso não é considerado modificar o arquivo? Se não estou enganado, os registros de data e hora também são armazenados no sistema de arquivos NTFS, e não no próprio arquivo.

Este também é o caso do sistema de arquivos FAT32 e versões anteriores do Windows?

    
por Samir 19.02.2014 / 09:25

2 respostas

2

O Windows NT tem, desde o início, suporte tanto um subsistema Win32 quanto um subsistema POSIX. Tanto no Win32 quanto no POSIX, os arquivos têm três timestamps. Dois desses timestamps são comuns para Win32 e POSIX. No Win32, os arquivos têm registros de data e hora Criação , Última Gravação e Último Acesso . O POSIX tem os carimbos de data / hora Última modificação , Último acesso e Alteração de nó .

Windows NT e NTFS, para suportar o Win32 e POSIX, fornecendo assim os arquivos quatro carimbos de data / hora: Criação, Última Gravação / Modificação, Último Acesso e Última Alteração.

Em POSIX, o registro de data e hora do nó I Alterado reflete a hora em que algo no nó I - permissões, proprietário, grupo e assim por diante - é alterado. O Windows NT define o registro de data e hora, mesmo que a coisa alterada seja alterada do Win32, já que (é claro) ambos os subsistemas são colocados em camadas sobre a API nativa quando se trata de arquivos.

Assim, alterar os atributos de um arquivo - somente leitura, oculto, sistema, arquivo, índice, off-line e assim por diante - com SetFileAttributes atualizará seu registro de data / hora da última alteração.

Ele não altera o registro de data e hora da Última Gravação porque isso é influenciado apenas pelas alterações nos dados do arquivo. São alterações nos metadados de um arquivo , no registro I-node / MFT, que influenciam o registro de data / hora da última alteração.

Todo sistema de arquivos no Windows NT precisa fornecer esses quatro timestamps para o kernel. Essa é a API que os drivers do sistema de arquivos precisam implementar.

Mas nem todos os sistemas de arquivos os definem nas estruturas de dados no disco ou os definem na mesma granularidade que o kernel do Windows NT. O formato do sistema de arquivos FAT, por exemplo, originalmente tinha apenas um registro de data e hora por arquivo: seu registro de data e hora da Última Gravação. O driver do sistema de arquivos FAT do Windows NT e o driver do sistema de arquivos FAT no DOS + Windows 95/98 / ME usavam, até então, campos sobressalentes em entradas de diretório para armazenar mais carimbos de data / hora. Mas não havia espaço para todos os quatro. Não há registro de data e hora da Última alteração no disco; o carimbo de data / hora do último acesso tem uma granularidade de 1 dia; e os carimbos de data e hora Last Write and Creation possuem uma granularidade de 2 segundos.

    
por 02.03.2014 / 02:48
0

Data da última modificação refere-se à data da última Escrita. Quando os atributos são alterados, eles não afetam os dados que você armazenou no arquivo, e por isso o Last modified permanece o mesmo.

Data de criação por definição é constante. O último acesso é imprevisível.

No entanto, há outro registro de data e hora ( invisível no Explorer ) chamado MFT. Quando você altera qualquer propriedade / atributo, a MFT muda naturalmente.

    
por 19.02.2014 / 09:32

Tags