5

Я хочу понять, почему объекты в корзине не нужно переименовывать, когда два или более объектов имеют одинаковое имя. В других местах два объекта не могут иметь одинаковое имя: мы вынуждены переименовать их.

1 ответ1

13

В отличие от @tikend, файлы не сохраняются по старому пути и просто помечаются как удаленные. Вместо этого файлы перемещаются в $Recycle.Bin в корне диска. Внутри есть папки с именами типа S-1-5-21-4284498480-1431815607-1764836822-1001 (фактический пример)*, а внутри находятся удаленные файлы.

Почему мы можем иметь два файла с одинаковым именем в корзине? Потому что их имена покалечены. Вместо sumthinFunny.cpp у нас есть $RYDITY2.cpp . Эти идентификаторы позволяют иметь два файла с одинаковым именем.

Как Widows узнает, откуда был удален файл? Он хранит метаданные файла (например, рассматриваемый путь, атрибуты файла и т.д.) В файле $IYDITY2.cpp . Внутри есть путь к исходному каталогу.

Кстати, если вы откроете $Recycle.Bin из проводника Windows выглядит пустой. Вы можете увидеть это, если подключите диск из Linux или через другой файловый менеджер, например Total Commander.

Кстати: хотя имена файлов переносятся в форму, похожую на $ RYDITY2.cpp, при открытии их свойств вы получаете нечто, похожее на UUID:

i.imgur.com/oA8rziH.png

* Это имя папки - SID пользователя, который удалил файл.

Отредактированный, чтобы принести мудрость комментариев здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .