Ссылка удаляется, файл метаданных хранится в корзине, чтобы узнать исходное местоположение.
В первые дни в Windows 95 и 98 это было в \RECYCLED
. В Windows 2000 и более поздних версиях она была переименована в \RECYCLER
. Начиная с Windows Vista, теперь это специальная папка \$Recycle.Bin
.
Используйте Process Monitor, чтобы увидеть ввод / вывод под крышкой, наденьте фильтр Recycle.Bin
и посетите его. :)
Например, когда я делаю это:
notepad \$RECYCLE.BIN\S-1-5-21-0192837465-987654321-0123456789-1000\$EXAMPL5
Примечание . Длинное имя папки - это SID пользователя . Последнее имя папки - это хеш, основанный на метаданных.
Я получаю файл, который содержит метаданные, например:
Ö¸ÌC : \ P a t h \ T o \ S o m e \ E x a m p l e . t x t
Причина того, что путь к файлу имеет пробелы между ними, заключается в том, что он хранится в широких байтовых символах, чтобы поддерживать специальные символы для определенных языков, а также юникод и что-либо еще. Более ранние символы являются двоичными и содержат такую информацию, как размер файла и права доступа, а также указатель на данные файла. По сути, он содержит достаточно информации, чтобы восстановить исходную ссылку ...
Грустно, что книга Windows Internals не покрывает это, иначе я бы имел больше ссылок. Я не нашел ни одной статьи, которая бы подробно об этом говорила ни Microsoft, ни сторонние разработчики. Они, вероятно, существуют, но мне было легче пойти и перепроектировать основную концепцию ...