Почему Windows устанавливает свойство «время создания» нового файла в «старое время»? - PullRequest
7 голосов
/ 19 марта 2009

Пытаясь это, я обнаружил странную проблему:

  1. Удалить старый файл.
  2. Создайте новый файл и назовите его так же, как старый файл.

Затем свойство «время создания» нового файла устанавливается на «время создания» старого файла. Почему это происходит? И как?

Ответы [ 3 ]

24 голосов
/ 19 марта 2009

Это связано с туннелированием файловой системы , как объяснил Рэймонд Чен:

"Почему вообще существует туннель?

Когда вы используете программу для редактирования существующего файла, а затем сохраняете его, вы ожидаете, что исходная отметка времени создания будет сохранена, поскольку вы редактируете файл, а не создаете новый. Но внутренне многие программы сохраняют файл, выполняя комбинацию операций сохранения, удаления и переименования (например, перечисленных в связанной статье), и без туннелирования время создания файла может измениться, даже если от точка зрения конечного пользователя, файл не создан.

В качестве другого примера важности туннелирования рассмотрим этот файл «Файл с длинным именем.txt», чье короткое имя называется «FILEWI ~ 1.TXT». Вы загружаете этот файл в программу, которая не поддерживает длинные имена файлов, и сохраняете ее. Он удаляет старый «FILEWI ~ 1.TXT» и создает новый с тем же именем. Без туннелирования соответствующее длинное имя файла будет потеряно. Вместо понятного длинного имени, имя файла было повреждено в этой штуке с волнистыми отметками. Не хорошо. "

0 голосов
/ 09 октября 2018

Вы можете обновить время создания с помощью этой команды вручную:

powershell (ls YourFile.txt).CreationTime = Get-Date

... и то же самое в командном файле:

call powershell "(ls YourFile.txt).CreationTime = Get-Date"
0 голосов
/ 19 марта 2009

Файловая система NT не удаляет файл, когда вы думаете, что это делает. Когда вы удаляете файл в файловой системе NT, операционная система просто отмечает дисковое пространство, занимаемое этим файлом, как доступное. Файл не будет действительно удален, пока другой файл не будет записан в это место на диске.

Относительно того, почему Windows считает, что это тот же самый файл, я полагаю, это связано с тем, что файл был пустым, когда вы его удалили, поэтому создается новый файл в том же месте с тем же именем и тем же ) содержимое заставляет Windows думать, что это фактически один и тот же файл. Я бы посчитал это ошибкой.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...