7

Пока я чистил некоторые (очень) старые файлы, я распаковывал .zip файл, который содержал некоторые старые файлы с 1989 года. Я был удивлен, обнаружив, что на некоторых файлах отображается черный значок часов, как показано ниже.

Я открыл командную строку и проверил их с помощью attrib , но ничего необычного не нашел. Я также проверил диалог Расширенные атрибуты для них и все еще не нашел ничего необычного.

Что, черт возьми, происходит и как от этого избавиться?


Рисунок 1: Проводник Windows, показывающий файлы с черными наложениями

Снимок экрана проводника Windows с неизвестными наложениями черных часов

2 ответа2

6

Имея в виду

По словам Раймонда Чена из Microsoft, это один из самых загадочных наложений значков (вероятно, из-за его редкости). Наложение «черные часы» - это расширенный атрибут NTFS «офлайн», который указывает, что оно было скопировано на ленту. Другими словами, файл в настоящее время недоступен без предварительного монтирования правильной ленты.

объяснение

« Но у меня нет магнитофона! » Я слышу, как вы возражаете. Это не удивительно; Я тоже. Раймонд объясняет:

Черные часы особенно сбивают с толку, потому что вы иногда видите их, даже если ваша система не оснащена Hierarchical Storage Management. Это происходит потому, что какая-то программа (обычно программа установки) не проверяла коды ошибок должным образом.

В моем случае файл был создан в 2010 году, вероятно, в Windows 7 (он отмечен как созданный в 2010 году). В Windows XP он был распакован на том NTFS, созданный Windows 7. Ошибка в 7-Zip или содержимое самого файла, вероятно, вызвало несоответствие, которое привело к этому странному поведению.

наблюдения

Команда attrib Windows XP не может отобразить атрибут, поскольку XP была выпущена в 2001 году и ограничена базовыми атрибутами RASH (она не показывает некоторые другие атрибуты, которые можно увидеть в Vista+). Однако, если вы включите столбец Атрибуты в проводнике Windows XP, вы увидите атрибут, обозначенный буквой O

Любопытство, вызванное атрибутом, вызвано командой dir :

1989.01.19  09:53            11,800 AGUY0.CMP
1989.01.19  09:54          (10,912) AGUY1.CMP

Как видите, cmd указывает любые файлы, помеченные как автономные, заключая их размеры в скобки. Это, однако, не влияет на общее количество байтов, указанных внизу.

Вы также можете использовать PowerShell для просмотра:

>  dir * | select Name, Attributes | more

Name                                                                 Attributes
----                                                                 ----------
AGUY0.CMP                                            Archive, NotContentIndexed
AGUY1.CMP                               ...emporary, Offline, NotContentIndexed

Другой (грязный) способ увидеть это - использовать команду fsutil :

> fsutil usn readdata AGUY0.CMP
…
File Attributes  : 0x2020
…

> fsutil usn readdata AGUY1.CMP
…
File Attributes  : 0x3120
…

Вы заметите, что атрибуты второго файла включают битовую маску 0x1000 константы атрибута FILE_ATTRIBUTE_OFFLINE .

Любопытное (хотя и понятное) наблюдение состоит в том, что в Vista+ файлы, помеченные как автономные, автоматически также помечаются как неиндексированные (т. Е. Атрибут I ). Однако использование attrib для удаления атрибута I не лишает их атрибута offline; они больше не имеют неиндексированного атрибута, но остаются помеченными как автономные.

Рисунок 1: Снимок экрана автономных файлов в проводнике Windows 7

Снимок экрана автономных файлов в Windows 7

Решение

Вы можете удалить атрибут с помощью команды attrib из более новых версий Windows. Если это невозможно, вы также можете использовать расширение оболочки, например, FileTweak или Attribute Changer от Febooti. Вы также можете использовать альтернативу attrib или даже cmd , например Take Command от JPSoft. PowerShell также можно использовать для доступа и изменения расширенных атрибутов , но он не так хорош, как attrib или расширение оболочки.

2

Это означает, что файл был заархивирован на ленту.

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